Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 19-02-2011, 21:48   #1 (permalink)
Neuer User
 
Registriert seit: Nov 2006
Beiträge: 24
Unhappy MovieClip in EventListener entfernen

Hallo Forum,

ich stehe mal wieder vor einem sinnlosen, zeitfressenden Problem und ich frage mich erneut, warum ich Flash überhaupt noch verwende.

Jetzt stecke ich wieder zu tief im Schlamassel, als dass ich die 2000 Zeilen Code über den Haufen werfen könnte. Kurz also mein Problem, es ist einfach, es ist unbegründet, es ist dumm, es ist - Flash! Der Code (etwas vereinfacht):

HTML-Code:
function add():void {
	var einClip:MovieClip = new mc_aus_bibliothek;
	MeineKlasse.meineStage.addChild(einClip);
	
	einClip.addEventListener(Event.ENTER_FRAME, listenerFunktion);
	
	if (bedingung) {
		MeineKlasse.meineStage.removeChild(einClip); // funktioniert
	}
}

function listenerFunktion(e:Event):void {
	if (bedingung) {
		MeineKlasse.meineStage.removeChild(e.currentTarget); // funktioniert NICHT
	}
}
Nun die 1000-Punkte-Frage: Warum kann der MovieClip in der EventListener-Funktion nicht entfernt werden?

Die Resultate bei "trace( typeof einClip )" und im Listener "trace( typeof e.currentTarget )" sind jedes Mal "object", da in AS3 glücklicherweise alle Elemente auch als Objekte behandelt werden. Wie schön. Ich verstehe den Fehler trotzdem nicht.

Ich habe es auch schon mit
HTML-Code:
MeineKlasse.meineStage.removeChild(MeineKlasse.meineStage.getChildByName(e.currentTarget.name));
versucht, aber die Fehlermeldungen im Compiler-Fenster machen mich ehrlich gesagt nur noch wütender.

Bevor ich Flash deinstalliere, es verbrenne und nie wieder einen Gedanken daran verschwende, wollte ich mir letzten Rat Forum holen.
Ich bin gespannt, ob jemand eine Antwort parat hat


Vielen Dank im Voraus.
phareon ist offline   Mit Zitat antworten
Alt 19-02-2011, 22:02   #2 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Es mag Dir ja Erleichterung verschaffen Deinen Zorn an Flash auszulassen, aber aus eigener Erfahrung kann ich Dir sagen, das der Bug meistens vor dem Rechner sitzt

Zum Problem:
  • Erhälst Du eine Fehlermeldung? Wenn ja welche?
    Fehlermeldung existieren nämlich nicht aus Bosheit, sondern um uns zu helfen den Fehler zu finden!

  • Schreib mal das hier in Deine Listener-Funktion und poste mir, was trace ausspuckt:
    PHP-Code:
    var dob:DisplayObject e.currentTarget as DisplayObject;
    trace(dob ".parent = " dob.parent " == " MeineKlasse.meineStage " = " + (dob.parent==MeineKlasse.meineStage)); 
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!

Geändert von Martin Kraft (19-02-2011 um 22:03 Uhr)
Martin Kraft ist offline   Mit Zitat antworten
Alt 19-02-2011, 22:36   #3 (permalink)
Neuer User
 
Registriert seit: Nov 2006
Beiträge: 24
Zitat:
Es mag Dir ja Erleichterung verschaffen Deinen Zorn an Flash auszulassen, aber aus eigener Erfahrung kann ich Dir sagen, das der Bug meistens vor dem Rechner sitzt
Da hast Du wohl Recht

...das nächste Mal wende ich mich einfach gleich hier her. Dein Code war schon die Lösung des Problems - das "currentTarget" muss lediglich als DisplayObject deklariert werden.

Das wäre beim Trace heraus gekommen:

HTML-Code:
[object mc_aus_bibliothek].parent = [object Stage] == [object Stage] = true
...was Du Dir wahrscheinlich schon gedacht hast
Und das war die Fehlermeldung, die ich vorher erhielt:

HTML-Code:
1118: Implizite Umwandlung von einem Wert mit statischem Typ Object in einen möglicherweise nicht verwandten Typ flash.display:DisplayObject.
Ja, ich weiß, da hätte ich auch selbst drauf kommen können. ABER (zu meiner bescheidenen Verteidigung): Ich wusste nicht, dass das so einfach geht

Flash ist schon toll.
Danke für die schnelle und kompetente Hilfe! Weiter so!
phareon 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


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
EventListener entfernen jeahbaby ActionScript 3 11 07-07-2010 11:08
Eventlistener in Objektklasse entfernen Shuggahnaut ActionScript 3 8 17-06-2010 10:53
EventListener aller Radiobuttongroups entfernen weis-nix ActionScript 3 3 04-10-2009 13:03
EventListener mit anonymer Funktion entfernen cornflakes ActionScript 3 5 30-09-2008 10:44
EventListener entfernen DjMichi ActionScript 3 3 31-01-2008 13:39


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

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


Copyright ©1999 – 2012 Marc Thiele