Autor |
Nachricht |
Net Works
Threadersteller
Dabei seit: 11.09.2010
Ort: Neustadt
Alter: -
Geschlecht: -
|
Verfasst Mo 18.10.2010 14:07
Titel AS 3 EventListener deaktivieren |
 |
|
Hallo, nach dem AS3-Redesign meiner Page bin ich nun am optimieren des Codes und habe folgendes Problem:
Auf die 4 Hauptnavigationen habe ich event-Listener gesetzt. Nun ist es aber so, dass sich die Positionen der Navigationspunkte verändern. Momentan habe ich es so geregelt, dass ich die Eventlistener bei onClick entferne und nach dem Navi-Move wieder setze. Gibt es eine Möglichkeit, die EventListener zeitweise zu deaktivieren?
Schauen kann man auch schon: http://www.tmc2000.de Ihr seht dort den Nav-Move.
Grüße
Lars
|
|
|
|
 |
phihochzwei
Moderator
Dabei seit: 08.06.2006
Ort: Mülheim an der Ruhr
Alter: 47
Geschlecht:
|
Verfasst Mo 18.10.2010 15:37
Titel
|
 |
|
Warum machst Du nicht EINEN Eventlistener, der je nach geklicktem Ziel unterschiedliche Aktionen macht (Stichwort event.target und event.currentTarget)
|
|
|
|
 |
Anzeige
|
|
 |
Net Works
Threadersteller
Dabei seit: 11.09.2010
Ort: Neustadt
Alter: -
Geschlecht: -
|
Verfasst Mo 18.10.2010 16:09
Titel
|
 |
|
Oh, du sprichst von einer EventListener-Funktion .
Bei der Subnavi hab ich das so gemacht
Code: | switch( e.currentTarget.name ){
case subnavCatcher[0].name:
... |
Aber auch wenn ich nur eine Funktion habe, muss ich für jeden Nav-Punkt 3 Listener erstellen, removen, erstellen. Is quasi am Problem vorbei.
Aber wie so oft, gibt es eine einfache Lösung, wenn man den Wald bei den Bäumen sieht. Ich hoffe, sie ist ok für das, was ich benötige.
Ich hab nun eine Variable eingeführt:
Code: | var doEventListener:Boolean = true; // gibt an, ob eine Aktion in den EventListener-Funktionen vollzogen werden soll oder nicht |
Die wird in der Listener-Funktion genutzt. Ich setze Sie bei onClick auf false und nach dem Navi-Move wieder auf true.
Die add und remove Listener Funktionen konnte ich dann rausschmeissen und hab einiges an Zeilen gespart.
Grüße
Lars
|
|
|
|
 |
phihochzwei
Moderator
Dabei seit: 08.06.2006
Ort: Mülheim an der Ruhr
Alter: 47
Geschlecht:
|
Verfasst Mo 18.10.2010 16:28
Titel
|
 |
|
Net Works hat geschrieben: | Aber auch wenn ich nur eine Funktion habe, muss ich für jeden Nav-Punkt 3 Listener erstellen, removen, erstellen. |
Wieso ?
|
|
|
|
 |
Net Works
Threadersteller
Dabei seit: 11.09.2010
Ort: Neustadt
Alter: -
Geschlecht: -
|
Verfasst Mo 18.10.2010 16:41
Titel
|
 |
|
Für MouseOver, MouseOut und Click.
Aber wenn die Navigation moved, soll man nicht clicken können etc. Also habe ich in meinem jugendlichen Leichtsinn die Event-Listener entfernt. 4 * 3 sind ja 12 Stück und danach habe ich sie wieder hinzugefügt.
Und dieses Problem habe ich nun gelöst, indem ich einen Schalter eingebaut habe, der besagt, ob die Aktionen in der mouseOver/Out/Click-Funktion ausgeführt sollen oder nicht.
Hab ich einen Denkfehler?
Grüße
Lars
|
|
|
|
 |
phihochzwei
Moderator
Dabei seit: 08.06.2006
Ort: Mülheim an der Ruhr
Alter: 47
Geschlecht:
|
Verfasst Mo 18.10.2010 16:48
Titel
|
 |
|
Am einfachsten:
Clip/Sprite erstellen. Da die Buttons rein. Dann den Listener auf den Clip, NICHT auf die Buttons. Dann bei Begin der Animation den Clip auf clip.mouseEnabled = clip.mouseChildren = false setzen und am ende der animation wieder auf true. Fertig
|
|
|
|
 |
Net Works
Threadersteller
Dabei seit: 11.09.2010
Ort: Neustadt
Alter: -
Geschlecht: -
|
Verfasst Mo 18.10.2010 17:01
Titel
|
 |
|
Very smooth.
An einen DisplayObjectContainer hatte ich garned gedacht. So spart man doch einige Zeilen.
Danke
|
|
|
|
 |
phihochzwei
Moderator
Dabei seit: 08.06.2006
Ort: Mülheim an der Ruhr
Alter: 47
Geschlecht:
|
Verfasst Mo 18.10.2010 17:14
Titel
|
 |
|
Kein Ding
|
|
|
|
 |
|
|
 |
Ähnliche Themen |
[JavaScript] Eventlistener im IE
eventListener aus Array erzeugen mit AS3
Brauche etwas js-Hilfe … (eventListener)
Flash CS3 - EventListener soll variable ändern
CS3 deaktivieren - nur wie?
MC's deaktivieren/aktivieren
|
 |