2010-12-08 12 views
0

Wie übergibt man in ActionScript Variablen von einer Seite an eine andere? Ich habe eine Lösung, dass dies mit CustomEvents in ActionScript getan werden kann, aber ich konnte keine verständliche und einfache Lösung finden. Kann jemand erklären, wie man Variablen mit einem kleinen Beispiel weitergibt? Bitte Hilfe?Wie Übergeben von Variablen in ActionScript?

Antwort

0

Es empfiehlt sich, Ereignisse zu verwenden, um sicherzustellen, dass Ihre Klassen nicht zu eng gekoppelt sind. Hier ist eine Möglichkeit, es zu tun, aber es gibt natürlich viele verschiedenen Ansätze zur Verfügung ....

//In your main class 
    private var dispatcher:EventDispatcher = new EventDispatcher(); 

    private var page1:A; 
    private var page2:B; 

    public function Main() 
    { 
     page1 = new A(dispatcher); 
     page2 = new B(dispatcher); 
    } 


    //In Class A (or Class B) 
    private var dispatcher:EventDispatcher; 

    public function A(dispatcher:EventDispatcher) 
    { 
     this.dispatcher = dispatcher; 
     dispatcher.addEventListener(CustomEvent.EXAMPLE , customEventListener); 
    } 

    private function customEventListener(event:CustomEvent):void 
    { 
     trace(event.type , event.data); 
    } 

    private function anyMethod(data:Object):void 
    { 
     //using a CustomEvent with a data property 
     //also passing a type can help in selecting between actions 
     dispatcher.dispatchEvent(new CustomEvent(CustomEvent.EXAMPLE , data)); 
    } 
0

Diese Frage mehr oder weniger von Patrick beantwortet worden, aber die explaination benutzerdefinierten Ereignisse zu schaffen, wurde ausgelassen. Um die Antwort von PatrickS mehr oder weniger zu ergänzen, ist das Folgende ein Beispiel für ein benutzerdefiniertes Ereignis.

Um ein benutzerdefiniertes Ereignis zu erstellen, müssen Sie das Ereignis oder eine Unterklasse davon erweitern, z. Mausereignis. Die CustomEvent-Klasse ist ein benutzerdefiniertes Ereignis, das das Ereignis erweitert.

Beim Erstellen eines benutzerdefinierten Ereignisses können Sie benutzerdefinierte Ereignistypen erstellen. Ereignistypen sind Zeichenfolgenwerte, die beim Absetzen eines Ereignisses als Argumente angegeben werden. Bei der Analyse empfiehlt es sich, sie in Form einer Konstante anzugeben, um sie typsicher zu machen. Zu diesem Zweck erstellen Sie eine öffentliche statische Konstanteneigenschaft für ein Ereignis. Beispielsweise hat das Ereignis Event den Ereignistyp COMPLETE, eine öffentliche statische Konstante, die den Zeichenfolgenwert "complete" aufweist. In diesem Fall hat das CustomEvent den Ereignistyp EXAMPLE mit dem Zeichenfolgenwert "example".

Beim Erstellen eines benutzerdefinierten Ereignisses können Sie Ereigniseigenschaften erstellen, die Werte speichern, die beim Absetzen des Ereignisses angegeben werden. Zum Beispiel hat das Ereignis ProgressEvent die Ereigniseigenschaft bytesLoaded. In diesem Fall verfügt das CustomEvent über eine Eigenschaft namens data.

Beim Erstellen eines benutzerdefinierten Ereignisses muss der Konstruktor einen Parameter für den Ereignistyp, die Bubbles-Flag und den Status "Abbrechen" haben. Hier können Sie auch Parameter für Werte hinzufügen, die in den Eigenschaften des Ereignisses gespeichert werden sollen. In diesem Fall gibt es einen Parameter namens p_data, der ein String-Typ ist. Anschließend rufen Sie mit dem Schlüsselwort super den Konstruktor der übergeordneten Klasse Event auf und analysieren die Argumente, die beim Senden des benutzerdefinierten Ereignisses an den Konstruktor der übergeordneten Klasse übergeben werden. Ich werde nicht ins Detail gehen, denn das geht in die Klassenvererbung und das müssen Sie wirklich nicht wissen. Als Nächstes weisen Sie den Werten der Ereigniseigenschaften die Daten zu, die beim Auslösen des Ereignisses analysiert werden. In diesem Fall wird den Eigenschaftsdaten des Ereignisses CustomEvent der Wert aus dem Argument p_data zugewiesen, das über den Konstruktor von CustomEvent analysiert wird.

Ich hoffe, das hat geholfen :)

Verwandte Themen