Dav*_*itt 3 apache-flex components
这是班级:
package fnc {
import mx.containers.Canvas;
public class Deck extends Canvas {
protected var _chipCount:int;
public function Deck(chipCount:int) {
/* Associate some chips with this deck */
_chipCount = chipCount;
}
public function get chipCount():int {
return _chipCount;
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是MXML:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:ns1="fnc.*">
<ns1:Deck horizontalCenter="0" verticalCenter="0">
</ns1:Deck>
</mx:Application>
Run Code Online (Sandbox Code Playgroud)
运行此应用程序会收到此错误:
ArgumentError:错误#1063:fnc :: Deck()上的参数计数不匹配.预期1,在mx.core上获得0.在mx.core :: Container/createComponentFromDescriptor()[C:\ autobuild\3.2.0\frameworks\projects\framework\src\mx\core\Container.as:3579]: :Container/createComponentsFromDescriptors()[C:\ autobuild\3.2.0\frameworks\projects\framework\src\mx\core\Container.as:3493] at mx.core :: Container/createChildren()[C:\ autobuild mx.core上的\ 3.2.0\frameworks\projects\framework\src\mx\core\Container.as:2589] :: UIComponent/initialize()[C:\ autobuild\3.2.0\frameworks\projects\framework\src\mx\core\UIComponent.as:5370]在mx.core :: Container/initialize()[C:\ autobuild\3.2.0\frameworks\projects\framework\src\mx\core\Container.as:2526 ]在mx.core :: Application/initialize()[C:\ autobuild\3.2.0\frameworks\projects\framework\src\mx\core\Application.as:846]在Practice/initialize()[C:\文档和设置\ LocalService\My Documents\Flex Builder 3\Practice\src\Practice.mxml:0]在mx.managers :: SystemManager/http://www.adobe.com/2006/flex/mx/internal :: childAdded()[C:\ autobuild\3.2.0\frameworks\projects\framework\src\mx\managers\SystemManager.as:2009]在mx.managers :: SystemManager/initializeTopLevelWindow()[C:\ autobuild\3.2.0\frameworks\projects\framework\src\mx\managers\SystemManager.as:3234]在mx.managers :: SystemManager/http://www.adobe.com/2006/flex/mx/internal::docFrameHandler()[C :\autobuild\3.2.0\frameworks\projects\framework\src\mx\managers\SystemManager.as:3064] at mx.managers :: SystemManager/docFrameListener()[C:\ autobuild\3.2.0\frameworks\projects\framework\src\mx\managers\SystemManager.as :2916]
chipCount="0"像这样添加到MXML:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:ns1="fnc.*">
<ns1:Deck chipCount="0" horizontalCenter="0" verticalCenter="0">
</ns1:Deck>
</mx:Application>
Run Code Online (Sandbox Code Playgroud)
获取此编译错误:
严重性和描述路径资源位置创建时间Id属性'chipCount'是只读的.Practice/src Practice.mxml第3行1242656555328 26
如何指定初始芯片数量?
在MXML中声明参数时,您无法将参数传递给元素的构造函数.你需要一个空的构造函数,然后有一个名为ChipCount的属性.您的代码也必须更新以处理ChipCount未设置(或设置为0).
我的建议是将Deck更改为:
public class Deck extends Canvas {
protected var _chipCount:int;
public function Deck() {
_chipCount = 0; // Default ChipCount and wait for it to be set.
}
public function get chipCount():int {
return _chipCount;
}
public function set chipCount(value:int):int {
// Add logic here to validate ChipCount before setting.
_chipCount = value;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2884 次 |
| 最近记录: |