Я хотел сопоставить конкретный блок if в java
...
...
if(isTrue){
doAction();
}
...
...
}
. Если я использую regExp
if \(isTrue(.|\n)*}
, он включал замыкающую скобку для блока метода, поэтому я использовал
if \(!isTrue([^}.]|\n)*}
, чтобы исключить заключительную скобку из соответствия шаблону.
Мы используем его для привязки пользовательских событий к нашим пользовательским компонентам MXML. Этот тег позволяет Вам ссылаться на него от MXML. См. документацию:
[Event(name="enableChanged", type="flash.events.Event")]
class ModalText extends TextArea {
...
}
<MyComp:ModalText enableChanged="handleEnableChangeEvent(event);"/>
Компилятор будет жаловаться, однако, при попытке обратиться к событию на теге MXML, который не был объявлен с метатегом события.
Эти [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
}
}
}