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组件?
作为标记,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)