В моем гибком приложении у меня есть различные настраиваемые компоненты, созданные с помощью mxml или ActionScript. Я хочу, чтобы все они расширили базовый класс, где я могу определять свойства / прослушиватели событий и т. Д. Может ли кто-нибудь дать мне пример, как создать этот базовый класс и как я могу расширить его в компонентах mxml и actionscript?
Базовый класс для пользовательских компонентов
Ответы (3)
Создание базового класса:
ActionScript
В BaseClass.as:
public class BaseClass
{
}
Расширение базового класса:
ActionScript
public class SubClass extends BaseClass
{
}
MXML
В файле с именем SubClass.mxml:
<ns:BaseClass xmlns:ns="path.to.base.*">
</ns:BaseClass>
Возможно, вы могли бы написать общий интерфейс для своих компонентов, просто с методами, которые им нужны для реализации.
public interface ICustomComponent {
function doSomething():void;
// more methods here
}
А затем в своих компонентах AS вы просто реализуете интерфейс ICustomComponent (или как вы его назвали)
public class CustomButton extends Button implements ICustomComponent {
public function doSomething():void {
}
}
Вы также можете сделать это в компонентах MXML:
<mx:Button xmlns:mx="http://www.adobe.com/2006/mxml"
implements="ICustomComponent">
<mx:Script>
<![CDATA[
public function doSomething():void {
// blah blah
}
]]>
</mx:Script>
</mx:Button>
Просто идея. Надеюсь, это поможет. Ура
В приведенном ниже примере компонент расширяет форму для создания адресной формы.
Вместо формы вы можете расширить свой собственный компонент.
При использовании ActionScript я бы посоветовал изучить жизненный цикл гибких компонентов для повышения производительности: http://livedocs.adobe.com/flex/3/html/help.html?content=ascomponents_advanced_2.html
mx: Форма xmlns: mx = "http://www.adobe.com/2006/mxml" xmlns: MyComp = "*"
<mx:FormItem label="NameField">
<mx:TextInput/>
</mx:FormItem>
<mx:FormItem label="Street">
<mx:TextInput/>
</mx:FormItem>
<mx:FormItem label="City" >
<mx:TextInput/>
</mx:FormItem>
<mx:FormItem label="State" >
<MyComp:StateComboBox/>
</mx:FormItem>
The following application file references the AddressForm component in the
Тег AddressForm:
mx: Приложение xmlns: mx = "http://www.adobe.com/2006/mxml"
xmlns: MyComp = "*"
<MyComp:AddressForm/>
/ mx: Приложение
из http://livedocs.adobe.com/flex/3/html/help.html?content=mxmlcomponents_1.html