自定义组件的基类

时间:2009-12-09 16:03:07

标签: flex actionscript-3 mxml

在我的flex应用程序中,我使用mxml或actionscript完成了各种自定义组件。 我希望他们所有人都扩展一个基类,我可以在其中定义属性/事件监听器等。 有人能举例说明如何创建该基类以及如何在mxml和actionscript组件中扩展它?

3 个答案:

答案 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>