-
Notifications
You must be signed in to change notification settings - Fork 0
ObjectBuilder (ru)
ObjectBuilder - языковое расширение, позволяющее создавать сложные объекты в декларативном стиле. Другими словами, это шаблон связанного класса. Этот шаблон может содержать:
- class properties block
- binding
- event description block
- children block
- init block
- constructor parameters block
Блок свойств класса предназначен для указания значений любого свойства экземпляра класса в простой и компактной форме.
Sprite{
x : 200;
y : 300;
};Вы можете использовать помеченные аннотацией Bindable свойства и методы в блоке свойств, аналогично тому как они используются в mxml. Для этого нужно взять их в конструкцию "%(...)%".
[Bindable]
public var textValue : String = "";
....
public function method() : void {
TextField{
text : %(textValue)%;
}
}Блок событий содержит всю информацию, связанную с обработкой событий.
TextField{
text : "Hello World";
onClick : {e =>
this.setTextFormat(TextFormat(<font:String>){
font : "_serif";
size : 20;
align : TextFormatAlign.LEFT;
});
};
}Этот блок позволяет добавить детей. Такая возможность доступна только для подклассов DisplayObject.
Sprite{
children :
[
TextField{
text : "Hello World!";
}
];
children :
[
SimpleButton(<upState:DisplayObject>){
name : "myButton";
}
];
};Этот блок даёт возможность задать функцию, которая будет вызвана после создания экземпляра. В пределах этого блока this указывает на экземпляр класса.
Init block is executed on instance creation. Extremely useful when you need this statement.
Sprite{
init : { =>
with (this.graphics) {
beginFill(0x000000, .4);
drawRect(0, 0, 600, 400);
}
};
};###constructor parameters block
Опциональный блок появляется, только если конструктор имеет параметры.
public function myClass(a : int, b : int) {
...
}
public function method() : void
{
myClass(1, 2){
<<...>>
};
}