Domanda

I sviluppare con FlashDevelop3 R2 e l'SDK di Flex 3.3 e ci sono molte occasioni in cui devo usare il tag embed metadati come tale:

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

ho capito quanto sopra cosa buona e giusta, e sono grato che esiste perché non mi piace per aprire l'IDE flash troppo spesso.

Quando sto attraversando altri autori classi ultimamente, ho trovato un tag di metadati interessante che non capisco:

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

Devo ancora vedere una situazione in cui ho bisogno di questo, e inoltre ho davvero solo non capisco che cosa è per.

Grazie in anticipo per il vostro aiuto.

Brian Hodge
blog.hodgedev.com hodgedev.com

È stato utile?

Soluzione

L'usiamo per eventi personalizzati legame con i nostri componenti MXML personalizzato. Questo tag consente di fare riferimento da MXML. Vedere documentazione :

  

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

     

class ModalText extends TextArea {   ...   }

     

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

Il compilatore si lamenta, tuttavia, se si tenta di fare riferimento a un evento su un tag MXML che non è stato dichiarato con un metatag evento.

Altri suggerimenti

Queste [Event(name, type)] dichiarazioni descrivono quali eventi un'istanza di classe rischia di spedizione.

Essi sono in realtà utili per la il completamento del codice - per esempio quando si digita: mySprite.addEventListener(, il vostro editor di codice (Flex Builder o FlashDevelop) verrà visualizzato un elenco significativo di eventi che questo oggetto può inviare.

Così si può aggiungere queste dichiarazioni contenute nel codice e beneficiare di un completamento del codice più ricco.

Si noti inoltre che questo funziona con le classi di eventi personalizzati (vedi nuovo modello di classe Event del FlashDevelop).

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
          }
     }
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top