Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 16-04-2008, 08:39   #1 (permalink)
Neuer User
 
Registriert seit: Mar 2007
Beiträge: 31
dispatch event funktioniert nur von "unten nach oben"

Hallo!

bisher bin ich recht gut mit "dispatch Event" zurecht gekommen. In einem Mc konnte ich ein Event dispatchen, das in anderen Mcs, die in der Hierarchie weiter oben angesiedelt sind, problemlos abgefangen werden konnte. In die andere Richtung von "oben nach unten" funktioniert dies jedoch nicht mehr.
hier der code für meinen event dispatcher:
Code:
dispatchEvent(new Event("flvStateChanged", true));

Code für den Listener:
Code:
this.addEventListener("flvStateChanged", flvStateChangedHandler);

function flvStateChangedHandler(eve:Event){
	trace("flvStateChanged");
}
den dispatcher habe ich in die oberste Ebene eingefügt (_root). Der listener liegt verschachtelt in einem anderen Mc.

Danke scho mal für die Hilfe!
Flo
spierala@gmx.de ist offline   Mit Zitat antworten
Alt 16-04-2008, 08:43   #2 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.141
Events bubblen ja nunmal auch von unten nach oben, deswegen der Name.
Omega Psi ist offline   Mit Zitat antworten
Alt 16-04-2008, 08:51   #3 (permalink)
ChronoGuard
 
Benutzerbild von SpecOps-12
 
Registriert seit: Mar 2002
Ort: Saarbrücken
Beiträge: 2.649
root statt this. Und bubbles brauchst du nicht auf true zu setzen, bringt da nichts.
SpecOps-12 ist offline   Mit Zitat antworten
Alt 16-04-2008, 09:28   #4 (permalink)
Neuer User
 
Registriert seit: Mar 2007
Beiträge: 31
servus!

bisher habe ich immer gedacht die bubbles gehen erste von oben nach unten und "steigen" dann wieder auf.
Ich meine dass das zumindest in flex so ist. In flex ging das bubbling meines Wissens immer problemlos in beide Richtungen. Aber muss ich nochmal ausprobieren.

Viele Grüße,
Flo
spierala@gmx.de ist offline   Mit Zitat antworten
Alt 16-04-2008, 09:43   #5 (permalink)
obvious
 
Registriert seit: Dec 2007
Ort: Berlin
Beiträge: 125
Events fangen bei der stage an, gehen dann in der "capturing phase" bis zu der Ebene, die den Event ausgelöst hat ("at target") und "bubblen" dann wieder zur Stage zurück.

Wobei es da auch Ausnahmen gibt, bzw. man das bubbling abstellen kann.
__________________
I´m gone to shot some aliens for kingdom and glory, for welfare and for life itself
xisari ist offline   Mit Zitat antworten
Alt 16-04-2008, 09:56   #6 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.141
Wenn es anders wäre würden EventListener bei bubblenden Events ja 2x anspringen.
Omega Psi ist offline   Mit Zitat antworten
Alt 16-04-2008, 10:05   #7 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Zitat:
Zitat von Omega Psi Beitrag anzeigen
Wenn es anders wäre würden EventListener bei bubblenden Events ja 2x anspringen.
Wäre sowieso etwas sinnlos, da man ja das Event rekursiv durch alle childs der Displaylist schleusen müsste (das wäre ja dann schon spam).
Somit würde das Event beim bubblen auch mehr als einmal am target vorbeikommen, und das würde mehr Verwirrung als Vorteile bringen.
Und zu einer endlosen Eventschlacht führen ...
__________________
ERROR: Signature is too large

Geändert von rendner[i] (16-04-2008 um 10:06 Uhr)
rendner[i] ist offline   Mit Zitat antworten
Alt 16-04-2008, 15:19   #8 (permalink)
Neuer User
 
Registriert seit: Mar 2006
Beiträge: 302
Eine ansehnlich Folie zu diesem Thema hat gSkinner erstellt:
http://gskinner.com/talks/50reasonsAS3/

Folie 22 visualiert sehr schön die Eventphasen (Capture und Bubble Phase)
__________________
Gruß
Flo

---- blog.derhess.de ---- My Book Store ---- YouTube iNspIreNewMedia ----
Blog, Flash-Programmierung, Interaction Development und alles andere mit Medien
der_hess ist offline   Mit Zitat antworten
Alt 30-05-2008, 16:28   #9 (permalink)
Neuer User
 
Registriert seit: Jan 2006
Beiträge: 9
Ich habe mein Problem auch schon im Flexforum beschrieben :
http://www.flexforum.de/showthread.php?t=2756


Wie ist es denn nun? Werden bubblende Events auch an die children gesendet? Ich vermute mal nicht. Aber wie kann man das dann umsetzen?

Kann man das target explizit bennen ? Ich habe auch versucht den Listener mit parent.addEventListener auf der selben Ebene wie das dispatchEvent() zu registrieren. Das hat auch keinen Erfolg gebracht.
Man-At-Arms ist offline   Mit Zitat antworten
Alt 30-05-2008, 19:20   #10 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.141
Das target kann man nicht setzen und Events bubblen nicht zu den Kindern. Events propagieren nur zum target und dann, wenn Bubbling möglich ist, wieder nach oben.

Wenn du deine Struktur vielleicht noch mal überlegst wirst du womöglich zu dem Schluss kommen, dass das Eventsystem so ausreichend ist.
Omega Psi ist offline   Mit Zitat antworten
Alt 19-01-2009, 13:24   #11 (permalink)
Neuer User
 
Registriert seit: Jul 2008
Beiträge: 117
Ich bin noch nicht so vertraut mit AS 3.0 und habe nun ein ebenfalls das gleiche Problem.
Ich habe in einem Objekt ein Weiteres einer anderen Klasse instanziert und hänge auf dieses einen Listener. Vom Grundobjekt soll nun ein Event dispatched werden, nur leider wird auf dieses nicht reagiert. In umgekehrter Richtung ist das aber kein Problem.
Wäre nett wenn mir wer weiterhelfen könnte. Die Antworten hier klingen zwar logisch, in die Praxis umsetzen kann ich das leider nicht.

Besten Dank
Chris_Winters ist offline   Mit Zitat antworten
Alt 19-01-2009, 13:57   #12 (permalink)
Crème brûlée
 
Registriert seit: Jan 2006
Ort: Düsseldorf
Beiträge: 719
Man kann Events auch in der Capture-Phase abfangen, wenn useCapture bei addEventListener auf true gesetzt wird. Das entspricht dann quasi einem "umgedrehten Bubbling".
laxersaz ist offline   Mit Zitat antworten
Alt 19-01-2009, 14:07   #13 (permalink)
Neuer User
 
Registriert seit: Jul 2008
Beiträge: 117
Hallo laxersaz!

Danke für deine Antwort!
Also ich hab beim referenzieren des Eventlistener das useCapture auf true gesetzt. Leider Hat sich dadurch auch nix geändert
Chris_Winters ist offline   Mit Zitat antworten
Alt 19-01-2009, 14:13   #14 (permalink)
Crème brûlée
 
Registriert seit: Jan 2006
Ort: Düsseldorf
Beiträge: 719
Lies dich am besten mal hier ein:

http://www.adobe.com/devnet/actionsc...ng_as3_03.html
laxersaz 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 16:23 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele