在我的flex应用程序中,我使用mxml或actionscript完成了各种自定义组件。 我希望他们所有人都扩展一个基类,我可以在其中定义属性/事件监听器等。 有人能举例说明如何创建该基类以及如何在mxml和actionscript组件中扩展它?
答案 0 :(得分:1)
也许你可以为你的组件编写一个通用接口,只需要用它们需要实现的方法
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>
只是一个想法。希望能帮助到你 干杯
答案 1 :(得分:0)
在下面的示例中,组件扩展Form以创建地址表单。
您可以扩展自己的组件,而不是表单。
使用actionscript时,我建议调查flex组件生命周期以获得最佳性能: 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>
以下应用程序文件引用
中的AddressForm组件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
答案 2 :(得分:0)
创建基类:
的ActionScript
在BaseClass.as中:
public class BaseClass
{
}
从基类扩展:
的ActionScript
public class SubClass extends BaseClass
{
}
MXML
在名为SubClass.mxml的文件中:
<ns:BaseClass xmlns:ns="path.to.base.*">
</ns:BaseClass>