我正在尝试创建一个可以从 mxml 代码接收附加值的组件:
public class Board extends Canvas
{
public var boardSize:Number;
private var cellWidth:Number;
public function Board()
{
super();
}
}
如何从 mxml 代码传递 boardSize 值。 例如
<MyComp:Board x="22" y="25" width="600" height="600" boardSize="19">
但它不起作用。当我尝试调试代码时,我看到类中的 boardSize 变量是 NaN
最佳答案
你什么时候测试这个?如果通过在构造函数中放置断点来测试代码,boardSize 应该为 null。就像您的代码一样,通过 MXML 实例化需要在设置任何成员变量之前调用构造函数。
例如,使用 TestObject 类试用此应用。当您在 Debug模式下运行它时,跟踪会告诉您 n 和 s 未设置,但是当您看到该应用程序时,跟踪发生后这两个标签清楚地绑定(bind)在一起。
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" xmlns:local="*">
<mx:TraceTarget />
<local:TestObject id="o" n="19" s="19" />
<mx:Label text="Number Field: {o.n}" />
<mx:Label text="String Field: {o.s}" />
</mx:Application>
package
{
public class TestObject
{
[Bindable]
public var n:Number;
[Bindable]
public var s:String;
public function TestObject()
{
trace("Initialized test object ...", n, s);
}
}
}
关于apache-flex - 柔性 : passing parameters to custom components,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1509733/