AS3 [Событие (имя = «», тип = «»)], каково значение?

Я хотел сопоставить конкретный блок if в java

   ...
   ...
   if(isTrue){
       doAction();

   }
...
...
}

. Если я использую regExp

if \(isTrue(.|\n)*}

, он включал замыкающую скобку для блока метода, поэтому я использовал

if \(!isTrue([^}.]|\n)*}

, чтобы исключить заключительную скобку из соответствия шаблону.

13
задан Brian Hodge 24 March 2009 в 08:00
поделиться

2 ответа

Мы используем его для привязки пользовательских событий к нашим пользовательским компонентам MXML. Этот тег позволяет Вам ссылаться на него от MXML. См. документацию:

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

class ModalText extends TextArea { ... }

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

Компилятор будет жаловаться, однако, при попытке обратиться к событию на теге MXML, который не был объявлен с метатегом события.

12
ответ дан 1 December 2019 в 20:01
поделиться

Эти [Event (name, type)] объявления описывают, какие события экземпляр класса, скорее всего, отправит.

Они действительно полезны для ​​завершения кода - например, когда вы набираете: mySprite.addEventListener (, ваш редактор кода (Flex Builder или FlashDevelop) отобразит значимый список событий, которые этот объект может отправлять.

Таким образом, вы можете добавить эти объявления в вашем коде и извлекать выгоду из более богатого дополнения кода.

Также обратите внимание, что это работает с пользовательскими классами событий (см. новый шаблон класса событий 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
          }
     }
}
20
ответ дан 1 December 2019 в 20:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: