Drag&Drop mit Bereich


chripalo

Grünschnabel
Hi!
Hab ein Symbol mit Drag&Drop versehen und möchte jetzt, dass dieses in einem bestimmten Bereich verschwindet wenn es dort hingezogen wird.
Wie muss ich den Code schreiben um dies zu machen?
Ich weiß, dass ich das mit einem if-Befehl und .visible false machen muss, aber ich komm nicht weiter.

Würd mich freuen, wenn mir wer helfen könnte.

lg
 

kalterjava

Erfahrenes Mitglied
Hi,

du fragst einfach deine aktuelle Mausposition ab und grenzt dann den entsprechenden Bereich in der If-Anweisung ein.

So in etwa (kommt auch auf die ActionScript-Version an)
Diese Funktion muss innerhalb der Drag & Drop Anweisung sein.

PHP:
if(_xmouse > 400 || _ymouse > 600){
dein_mc._visible = false;
}
VG
 

chripalo

Grünschnabel
super!
danke für die Antwort.
jetzt noch eine letzte frage:
wie schreib ich das in die if-anweisung rein, wenn ich safen will:
wenn die maus zwischen den x koordinaten 400 und 500 und den y koordinaten 600 und 700 ist soll sie visible =false sein?
 

kalterjava

Erfahrenes Mitglied
super!
danke für die Antwort.
jetzt noch eine letzte frage:
wie schreib ich das in die if-anweisung rein, wenn ich safen will:
wenn die maus zwischen den x koordinaten 400 und 500 und den y koordinaten 600 und 700 ist soll sie visible =false sein?

Hi,

probier es mal in der Art:

PHP:
if(_xmouse >400 && _xmouse <500 || _ymouse >600 && _ymouse <700)

Viele Grüße
 

chripalo

Grünschnabel
Also, es funktioniert so halbwegs. Ich kann es ziehen und es verschwindet, allerdings überall und das dragndrop funktioniert auch nicht mehr. Wenn ich das objekt anklicke, verschwindet es einfach.

hier mal mein code:

PHP:
apfel.addEventListener(MouseEvent.MOUSE_DOWN, onStartDrag);
apfel.addEventListener(MouseEvent.MOUSE_UP, onStopDrag);

function onStartDrag(e:MouseEvent):void {
	e.target.startDrag();
}

function onStopDrag(e:MouseEvent):void {
	e.target.stopDrag();
	
	if (e.target.dropTarget !=null) {
		if (stage.mouseX >437,4 && stage.mouseX <599,4 || stage.mouseY >53,4 && stage.mouseY <336,4) {
			e.target.visible =false
			e.target.removeEventListener(MouseEvent.MOUSE_DOWN, onStartDrag);
			e.target.removeEventListener(MouseEvent.MOUSE_UP, onStopDrag);
		}
	}
}
 
Zuletzt bearbeitet:

kalterjava

Erfahrenes Mitglied
Hi,

also das kann eigentlich nicht funktionieren. Bei mir wird da ein Fehler ausgegeben, wenn ich mit 437,4 usw. arbeite. Bei dir nicht? Kommazahlen werden in ActionScript mit einem Punkt geschrieben, also 437.4

ein kleines Beispiel:

PHP:
var zahl1:Number = 2;
var zahl2:Number = 2.8;
var erg:Number = zahl1+zahl2;
trace (erg)

Wenn du jetzt 2,8 schreibst, dürfte kein Ergebnis sondern eine Fehlermeldung erscheinen.
Das solltest du du also bei dir auf jeden Fall ändern.
Und, müssen es unb. Kommazahlen sein? würde 437 und 600 und 53 und 336 nicht ausreichen?

VG
 

chripalo

Grünschnabel
Hi,

also das kann eigentlich nicht funktionieren. Bei mir wird da ein Fehler ausgegeben, wenn ich mit 437,4 usw. arbeite. Bei dir nicht? Kommazahlen werden in ActionScript mit einem Punkt geschrieben, also 437.4

VG

Also bei mir wird keine Fehlermeldung ausgeschrieben.
Habs jetzt ohne Komma gemacht, funktioniert aber trotzdem nicht. Bin langsam echt am verzweifeln.
Hinzu kommt ja, dass nur das erste Objekt sich ziehen lässt und das nächste sofort verschwindet sobald ich draufklicke
 

kalterjava

Erfahrenes Mitglied
Hi,

lade mir doch mal die Datei hoch, dann schau ich es mir an.
Aber dann bitte als CS5 Datei speichern, da ich kein CS6 habe.