如何将参数传递给ActionScript编写的自定义组件

sgo*_*les 4 apache-flex flash flex3 actionscript-3

我有一个用ActionScript编写的自定义组件.它有构造函数,期待一些参数.

我想将这个自定义组件包含在mxml中,如下所示,

Main.mxml

...
<custom:CustomActionScriptComponent/>  // Error line ..
..
Run Code Online (Sandbox Code Playgroud)

但是,它告诉我一个错误的说法

Error 1136: Incorrect number of arguments.  Expected 1.
Run Code Online (Sandbox Code Playgroud)

如何将MXML文件中的参数传递给该自定义ActionScript组件?

Jas*_*ges 5

作为标记,MXML不支持类构造函数.

根据您的ActionScript类,您可以允许参数的默认初始化:

    public function CustomActionScriptComponent(parameter:Object=null)
    {
        super();
    }
Run Code Online (Sandbox Code Playgroud)

然后在MXML中实现创建完成事件处理程序:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
               xmlns:s="library://ns.adobe.com/flex/spark"
               xmlns:mx="library://ns.adobe.com/flex/mx"
               creationComplete="creationCompleteHandler(event)">

    <fx:Script>
        <![CDATA[
            import mx.events.FlexEvent;

            protected function creationCompleteHandler(event:FlexEvent):void
            {
                customActionScriptComponent.parameter = {};
            }
        ]]>
    </fx:Script>

    <custom:CustomActionScriptComponent id="customActionScriptComponent" />

</s:Application>
Run Code Online (Sandbox Code Playgroud)