Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 18-08-2005, 14:01   #1 (permalink)
Neuer User
 
Registriert seit: Aug 2005
Beiträge: 5
drag & drop & _droptarget

Hallo zusammen

Vielleicht könnt ihr mir ja helfen. Ich habe folgende Ausgangslage:

-> Einen Button mit Instanzname "button"
-> Einen Movieclip mit Instanzname "movie"
-> Ein dynamisches Textfeld mit Instanzname "textfield"

Alle diese Objekte sind in Frame 1. Da ich allen Code in den Frame und nicht auf die Objekte legen möchte aus Uebersichtlichkeitsgründen möchte ich das am liebsten so beibehalten.

Actionscript in Frame 1 sieht folgendermassen aus:

ActionScript:
  1. textfield.text = ""
  2.  
  3. button.onPress = function () {
  4.     startDrag(this, true)
  5. }
  6.  
  7. button.onRelease = function () {
  8.     stopDrag()
  9.     if(eval(this._droptarget) == "/movie") {
  10.         textfield.text = "YES IT WORKED"
  11.     } else {
  12.         textfield.text = "NOPE ITS FUCKED " + this._droptarget 
  13.     }   
  14. }
  15. stop()

Was ich schon rausgefunden habe, ist dass in this._droptarget nichts drin steht. Das scheint hier mein Problem zu sein. Bezieht sich this hier nicht auf den button "button"?

Kann mir jemand sagen was ich da falsch mache?

Vielen Dank für jede Hilfe
Chris

Geändert von strongarm (18-08-2005 um 14:06 Uhr) Grund: Verbesserung
strongarm ist offline   Mit Zitat antworten
Alt 18-08-2005, 16:26   #2 (permalink)
nobody is perfect
 
Benutzerbild von Decrone
 
Registriert seit: Apr 2002
Ort: Bremen
Beiträge: 3.049
Hi

ActionScript:
  1. stop()
  2. var clip;
  3. textfield.text = "";
  4.  
  5. button.onPress = function () {
  6.         startDrag(this, true);
  7. }
  8. button.onRelease = function () {
  9.       stopDrag();
  10.     clip= eval(this._droptarget)
  11.     if(this._droptarget!= "/movie") {
  12.         textfield.text = this+" YES IT WORKED";
  13.     } else {
  14.         textfield.text = "NOPE ITS FUCKED ";
  15.         trace("'"+this._droptarget+"'"+"= String "+"...Objekt Referenz= "+clip);
  16.     }
  17. }
this alleine bezieht sich auf dem button!
this._droptarget liefert einen String, der den Pfad zu dem Clip angibt, über dem er grade schwebt. Wenn kein Clip vorhanden ist, gibt _droptarget undefined zurück!

Gruss Dec
__________________
FF Unterstützen! Erste Hilfe! häufig gestellten Fragen
...................... ............... ................................

Geändert von Decrone (18-08-2005 um 17:36 Uhr)
Decrone ist offline   Mit Zitat antworten
Alt 18-08-2005, 18:12   #3 (permalink)
Neuer User
 
Registriert seit: Aug 2005
Beiträge: 5
Danke Decrone für deine Antwort.

Wenn ich dein Script ausführe, dann erhalte ich als Ergebnis ins textfield folgendes rein:

level0.button YES IT WORKED

Das heisst, dass this auf den button zeigt.

Wenn ich aber anstatt if(this._droptarget!= "/movie") if(this._droptarget == "/movie") setze, dann ist das Problem das gleiche wie vorher. Es sieht so aus wie wenn _droptarget nichts behinhalten würde, ob ich nun über dem movie den Mauszeiger release oder irgendwo anders.

Den Trace, den ich erhalte ist folgender:
''= String ...Objekt Referenz=

Ist es vielleicht möglich, dass _droptarget erst mit Flash MX 2004 geht? Ich benutze noch das normale Flash MX.

Oder an was könnte das sonst noch liegen?

Danke und Gruss
Chris
strongarm ist offline   Mit Zitat antworten
Alt 18-08-2005, 19:14   #4 (permalink)
nobody is perfect
 
Benutzerbild von Decrone
 
Registriert seit: Apr 2002
Ort: Bremen
Beiträge: 3.049
Hi

also...
ActionScript:
  1. if(this._droptarget!= "/movie") {
Wenn this._droptarget nicht gleich "/movie" ist soll er Ausgeben: "YES IT WORKED";
Wenn this._droptarget gleich "/movie" ist, soll er Ausgeben: "NOPE ITS FUCKED"

was er ja auch macht! Oder ich versteh nicht genau worauf Du hinaus willst!

Probiere das mal aus
ActionScript:
  1. if(this._droptarget== ["/movie"]) {


und droptarget gibt es schon seit Flash4

Gruss Dec
__________________
FF Unterstützen! Erste Hilfe! häufig gestellten Fragen
...................... ............... ................................
Decrone ist offline   Mit Zitat antworten
Alt 20-08-2005, 11:37   #5 (permalink)
Neuer User
 
Registriert seit: Aug 2005
Beiträge: 5
Hey Decrone

Mein Problem ist, dass this._droptarget immer leer ist wenn ich probiere den Inhalt über die Funktion trace auszugeben. Egal ob ich den button über dem movie release oder irgendwo ausserhalb. Da sieht man kein "undefined" oder sonst etwas. Sondern einfach nichts.

Eigentlich möchte ich, dass wenn der button über dem Movie released wird, dass dann "yes it worked" zurückgegeben wird. Für das müsste das doch eigentlich mit if(this._droptarget == "/movie") klappen oder?

Wenn der button irgendwo anders als über dem movie released wird, dann sollte eigentlich kommen "nope it's fucked".

Mein eigentliches Problem ist aber, dass this._droptarget immer leer ist was mich ehrlich gesagt verwundert, da die meisten Beispiele im Internet genau das tun, was ich auch tu. Ich hab langsam das Gefühl, dass meine Flash Version einen Bug hat.

Ist es möglich, das auch der button ein movieclip sein muss? Aber eigentlich sollte das ja keine Rolle spielen.

ActionScript:
  1. stop()
  2. var clip;
  3. textfield.text = "";
  4.  
  5. button.onPress = function () {
  6.     startDrag(this, true);
  7. }
  8. button.onRelease = function () {
  9.     stopDrag();
  10.     trace(this._droptarget+" .... is always empty!")
  11. }

Danke für deine Zeit.
Chris
strongarm ist offline   Mit Zitat antworten
Alt 20-08-2005, 11:45   #6 (permalink)
Neuer User
 
Registriert seit: Aug 2005
Beiträge: 5
Problem gelöst. Ich habe den Button mit Instanzname button in ein Movieclip umformatiert und siehe da, beim trace gibts mir /movie zurück über dem Movie.

Das heisst im Klartext, this._droptarget kann nur benutzt werden, wenn beides der dragbutton und das droptarget Movieclips sind.

Danke für deine Unterstützung Decrone.
Chris
strongarm ist offline   Mit Zitat antworten
Alt 20-08-2005, 13:31   #7 (permalink)
nobody is perfect
 
Benutzerbild von Decrone
 
Registriert seit: Apr 2002
Ort: Bremen
Beiträge: 3.049
Zitat:
Zitat von strongarm
Das heisst im Klartext, this._droptarget kann nur benutzt werden, wenn beides der dragbutton und das droptarget Movieclips sind.
Chris
Davon bin ich auch die ganze Zeit von ausgegangen!

Bötte schön, gern geschehen

Gruss Dec
__________________
FF Unterstützen! Erste Hilfe! häufig gestellten Fragen
...................... ............... ................................
Decrone ist offline   Mit Zitat antworten
Alt 20-08-2005, 13:32   #8 (permalink)
weirdoz
 
Benutzerbild von Ghanji
 
Registriert seit: Aug 2002
Ort: Ruhr.G-Beat
Beiträge: 324
if(eval(this._droptarget) == movie)
...
__________________
international-karate
Ghanji ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 02:50 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele