Flashhilfe.de - Flash Community

eventlistener vor removen speichern? [Flash 9]

 


AntwortenRegistrieren Seite1  

emotion#1
Benutzerbild von emotion
Beiträge: 191
Registriert: Jun 2008

13.12.2008, 13:48

Hi Leute

Ist es möglich EventListener zu speichern? So das ich z.B alle Listener eines Containers mit ner Schleife entfernen und später die entsprechenden Listener wieder den richtigen Objekten zuweisen kann?

Gruss
emotion
Werbung
Beiträge: 0
Registriert: Feb 2016


omega psi#2
Benutzerbild von omega psi
Beiträge: 791
Registriert: Apr 2004

13.12.2008, 14:02

Klar. Referenziere die Listener Funktionen in einem Array und dann kannst du wie du magst die Funktionen adden und removen...
Architectures - Refactoring - Prototyping - Coding - Training
emotion#3
Benutzerbild von emotion
Beiträge: 191
Registriert: Jun 2008

Themenautor/in

13.12.2008, 14:50

und wie referenziere ich einen Eventlistener in nem Array?
kann man auch EventListener entfernen bei denen man den Typ des Ereignisses nicht kennt?
Geändert von emotion am 13.12.08 um 15:02 Uhr
omega psi#4
Benutzerbild von omega psi
Beiträge: 791
Registriert: Apr 2004

14.12.2008, 10:31

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
package {
   import flash.display.Sprite;
   import flash.events.Event;
   import flash.events.IEventDispatcher;
   import flash.events.MouseEvent;
   import flash.utils.getQualifiedClassName;

   public class ReferencingEventListeners extends Sprite
   {
      private var _eventTypes:Array;

      public function ReferencingEventListeners()
      {
         super();
         this.initialize();
      }

      protected function addEventListeners(dispatcher:IEventDispatcher, eventTypes:Array, listener:Function):void
      {
         for (var index:int = 0; index < eventTypes.length; index++)
         {
            dispatcher.addEventListener(eventTypes[index], listener);
         }
      }

      protected function eventListener(event:Event):void
      {
         trace(getQualifiedClassName(this), "eventListener", event.type);
         if (event.type == MouseEvent.CLICK)
            this.removeEventListeners(IEventDispatcher(event.target), this._eventTypes, eventListener);
      }

      protected function initialize():void
      {
         this._eventTypes = [MouseEvent.CLICK,
                        MouseEvent.MOUSE_DOWN,
                        MouseEvent.MOUSE_MOVE,
                        MouseEvent.MOUSE_OUT,
                        MouseEvent.MOUSE_OVER,
                        MouseEvent.MOUSE_UP,
                        MouseEvent.MOUSE_WHEEL,
                        MouseEvent.ROLL_OUT,
                        MouseEvent.ROLL_OVER];
         var sprite:Sprite = new Sprite();
         this.addEventListeners(sprite, this._eventTypes, eventListener);
         sprite.graphics.beginFill(0xFF0000);
         sprite.graphics.drawRect(0, 0, 100, 100);
         sprite.graphics.endFill();
         this.addChild(sprite);
      }

      protected function removeEventListeners(dispatcher:IEventDispatcher, eventTypes:Array, listener:Function):void
      {
         for (var index:int = 0; index < eventTypes.length; index++)
         {
            dispatcher.removeEventListener(eventTypes[index], listener);
         }
      }
   }
}
Nur ein schnelles Beispiel.
Architectures - Refactoring - Prototyping - Coding - Training
Werbung
Beiträge: 0
Registriert: Feb 2016


emotion#5
Benutzerbild von emotion
Beiträge: 191
Registriert: Jun 2008

Themenautor/in

15.12.2008, 21:11

danke für das schöne Beispiel! Was mich ein bisschen verwirrt; wieso wird das Sprite-Objekt der addEventListeners-Funktion als IEventDispatcher-Objekt übergeben? Wie geht das und warum ist das nötig? die Sprite-Klasse kennt doch addEventListener auch?
omega psi#6
Benutzerbild von omega psi
Beiträge: 791
Registriert: Apr 2004

15.12.2008, 21:19

Mir geht es da nur um das was wichtig war: eine IEventDispatcher Instanz - kleinster gemeinsamer Nenner.
Architectures - Refactoring - Prototyping - Coding - Training
emotion#7
Benutzerbild von emotion
Beiträge: 191
Registriert: Jun 2008

Themenautor/in

16.12.2008, 15:02

achso. Hab gar nicht gewusst das man auf den kleinsten gemeinsamen Nenner reduzieren kann=)

danke und gruss
emotion

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Hier Werben   Impressum
© 1999-2020 Sebastian Wichmann - Flashhilfe.de