gpt4 book ai didi

apache-flex - 如何在自定义 MXML 标记中填充所需参数?

转载 作者:行者123 更新时间:2023-12-01 09:11:12 24 4
gpt4 key购买 nike

这是类(class):

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;
}
}
}

这是 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>

运行这个应用程序得到这个错误:

ArgumentError:错误 #1063:fnc::Deck() 上的参数计数不匹配。预期 1,得到 0。 在 mx.core::Container/createComponentFromDescriptor()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\core\Container.as:3579] 在 mx.core::Container/createComponentsFromDescriptors()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\core\Container.as:3493] 在 mx.core::Container/createChildren()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\core\Container.as:2589] 在 mx.core::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:\Documents and Settings\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] 在 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>

得到这个编译错误:

严重性和描述路径资源位置创建时间 ID属性“chipCount”是只读的。 practice/src Practice.mxml line 3 1242656555328 26

如何指定初始筹码数?

最佳答案

当您在 MXML 中声明元素时,您无法将参数传递给元素的构造函数。您需要一个空的构造函数,然后有一个名为 ChipCount 的属性。您的代码也必须更新以处理未设置(或设置为 0)的 ChipCount。

我的建议是把 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;

}
}

关于apache-flex - 如何在自定义 MXML 标记中填充所需参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/878043/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com