Zurück   Flashforum > Flash > Flash erweitern > Komponenten und SmartClips

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 02-04-2004, 09:18   #1 (permalink)
Neuer User
 
Registriert seit: Jul 2003
Ort: münchen
Beiträge: 103
Event Listener

Hi,
hat jemand eine Ahnung wo ich Infos zu den Event Listenern finde?
einfach eine gute erklärung, oder einen artikel dazu, der mehr als nur 4 zeilen lang ist?!?
also wo genau ich die in meiner komponentenklasse definiere und wie ich die dann triggern kann...
*sucheBereitsVergeblich*

DANKE!!!
anakin_w ist offline   Mit Zitat antworten
Alt 02-04-2004, 11:32   #2 (permalink)
0x2b | ~0x2b;
 
Benutzerbild von bort
 
Registriert seit: Jan 2003
Ort: Rocky Beach
Beiträge: 370
Artikel weiss ich jetzt auch nicht, aber eigentlich ist es recht einfach:
Zuerst musst Du Deine Komponentenklasse mit der erforderlichen Funktionalität dekorieren. Das geschiet durch den Aufruf von mx.events.EventDispatcher.initialize(this)

Wenn Deine Komponentenklasse dann z.B. eine onPress Methode definiert hat, kannst Du darin einen Event "click" abschicken, auf den Listener dann reagieren können.

Damit der Compiler nicht meckert müssen in der Klassendefinition außerdem die Methoden von mx.events.EventDispatcher definiert werden.

ActionScript:
  1. // Import der Klassen
  2. import mx.core.UIComponent;
  3. import mx.events.EventDispatcher;
  4.  
  5. // Klassendefinition
  6. class TestComponent extends UIComponent {
  7.     static var symbolName:String
  8. static var symbolOwner:Object = Object(TestComponent);
  9.     var className:String = "TestComponent";
  10.    
  11.     // Methoden von EventDispatcher
  12.     var dispatchEvent:Function;
  13.     var addEventListener:Function;
  14.     var removeEventListener:Function;
  15.    
  16.     // Constructor
  17.     function TestComponent() {
  18.     }
  19.    
  20.     // Init 
  21. public function init(Void):Void {
  22.         super.init();
  23.         EventDispatcher.initialize(this);
  24.     }
  25.    
  26.     public function size() {
  27.         super.size();
  28.     }
  29.    
  30.     public function draw() {
  31.         super.draw();
  32.     }
  33.    
  34.     function onPress() {
  35. // Event abschicken
  36.         dispatchEvent({type: "click", target: this});
  37.     }
  38. }
Und im fla dann (angenommen die Komponente hat den Instanznamern "myComp"):
ActionScript:
  1. var listener = new Object();
  2. listener.click = function() {
  3. trace("geklickt.")
  4. }
  5. myComp.addEventListener("click", listener);
  6. myComp
Hilft Dir das weiter?

Gruß,
bort.
__________________
http://www.flexperten.de
bort ist offline   Mit Zitat antworten
Alt 03-04-2004, 14:32   #3 (permalink)
Neuer User
 
Registriert seit: Jul 2003
Ort: münchen
Beiträge: 103
hmm... cool,
aber noch ganz verstanden hab ichs noch nicht :-)

ActionScript:
  1. EventDispatcher.initialize(this);
was mache ich denn da genau?!?

ActionScript:
  1. function onPress() {
  2.                 // Event abschicken
  3.                 dispatchEvent({type: "click", target: this});
  4.         }

.. und wie kann man hier andere events als die standart events her onPress belegen?!?
auch die syntax kapier ich nicht mit den {} klammern als parameter?!?

danke,
anakin alias nichtsChecker
anakin_w ist offline   Mit Zitat antworten
Alt 05-04-2004, 13:30   #4 (permalink)
0x2b | ~0x2b;
 
Benutzerbild von bort
 
Registriert seit: Jan 2003
Ort: Rocky Beach
Beiträge: 370
Zitat:
Geschrieben von anakin_w
ActionScript:
  1. EventDispatcher.initialize(this);
was mache ich denn da genau?!?
Durch den Aufruf von EventDispatcher.initialize(this) wird Deine Komponente mit zusätzlicher Funktionalität (sprich: zusätzlichen Methoden) ausgestattet, die den Einsatz von EventListenern ermöglichen. Ich habe übrigens hier im Forum noch folgenden Link entdeckt, der die Thematik gut erläutert: http://www.asnative.de/artikel/eventdispatcher.html

Gruß,
bort.
__________________
http://www.flexperten.de
bort 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 aus.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 13:39 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele