Frage

Ich entwickle mit FlashDevelop3 R2 und dem Flex 3.3 SDK und es gibt viele Gelegenheiten, bei denen ich die einbetten Metadaten-Tag als solche verwenden müssen:

  [Embed(source="path/to/file")]
  private var Asset:Class;

Ich verstehe die vor allem gut und gut, und ich bin dankbar, dass es existiert, weil Ich mag, um das Flash-IDE nicht öffnen zu oft.

Wenn ich durch andere Autoren werde Klassen in letzter Zeit, ich habe einen interessanten Metadaten-Tag gefunden, die ich nicht verstehe:

[Event(name="", type="")]

Ich habe noch eine Situation zu sehen, wo ich diese benötigen, und darüber hinaus wirklich nicht verstehe ich genau das, was es ist für.

Vielen Dank im Voraus für Ihre Hilfe.

Brian Hodge
blog.hodgedev.com hodgedev.com

War es hilfreich?

Lösung

Wir verwenden es für die Bindung benutzerdefinierte Ereignisse unserer Gewohnheit MXML-Komponenten. Mit diesem Tag können Sie es von MXML verweisen. Siehe Dokumentation :

  

[Event(name="enableChanged", type="flash.events.Event")]

     

class ModalText extends TextArea {   ...   }

     

<MyComp:ModalText enableChanged="handleEnableChangeEvent(event);"/>

Der Compiler wird sich beschweren, aber wenn Sie versuchen, auf ein Ereignis auf einem MXML-Tag zu beziehen, die nicht mit einem Ereignis Metatag erklärt wurde.

Andere Tipps

Diese [Event(name, type)] Erklärungen beschreiben, welche Ereignisse eine Klasseninstanz ist wahrscheinlich zu versenden.

Sie sind wirklich nützlich für Code-Vervollständigung - zum Beispiel, wenn Sie Folgendes eingeben:. mySprite.addEventListener(, Code-Editor (Flex Builder oder FlashDevelop) eine sinnvolle Liste der Ereignisse anzeigen, die dieses Objekt versenden kann

So Sie diese Erklärungen in Ihrem Code und profitiert von einer reicheren Code-Vervollständigung hinzufügen können.

Beachten Sie auch, dass dies mit benutzerdefinierten Event-Klassen arbeitet (FlashDevelop der neuen Event-Klasse-Vorlage sehen).

package mycomp {
    import flash.events.Event;

    public class MyEvent extends Event {
         public const SOME_EVENT:String = "someEvent";
         // required Event type declarations
    }
}

package mycomp {
     [Event(name="someEvent", type="mycomp.MyEvent")]
     public class MyComp extends Sprite {
     }
}

package myproject {
     import mycomp.MyComp;

     public class MyProject {
          function MyProject() {
                var mc:MyComp = new MyComp();
                mc.addEventLister( //completes: SOME_EVENT + Sprite events
          }
     }
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top