由于某种原因,有一个按钮点击处理程序给我带来麻烦,我不知道为什么。我设置它就像其他类似的一样(这一切都有效)但是这个没有显示消息或关闭我的按钮。这是我的clickHandler ......
private function Buffer_Route_clickHandler():void
{
showMessage("Loading RBE Options");
disableButtons();
if(Buffer_Route.selected && rbeAC.length == 0){
createRbeAC();
}
}
这是creatRbeAC函数......
private function createRbeAC():void
{
rbeAC.removeAll();
hiddenRBELayers.removeAll();
var rbeIDs:Array = rbeConfigList.getKeySet();
for each (var rbeID:int in rbeIDs)
{
var rbeConfig:Hashtable = rbeConfigList.find(rbeID) as Hashtable;
var rbeData:Object =
{
restURL:rbeConfig.find("rbeRESTURL") as String,
layername:rbeConfig.find("rbeLayerName") as String,
icon: rbeConfig.find("rbeIcon") as String,
titlefield: rbeConfig.find("rbeTitleField") as String,
checked: rbeConfig.find("rbeChecked") as String,
count: "0" as String
};
if(rbeData.checked == "false")
{
hiddenRBELayers.addItem(rbeData.layername);// as String);
}
rbeAC.addItem(rbeData);
}
}
我没有收到任何加载文本,所以我从代码中取出了我的clearMessage和enableButtons函数,看它是否正在添加消息并禁用按钮开始。我仍然没有得到任何东西。由于clearMessage和enableButtons无法在此按钮单击处理程序或creatRbeAC函数中找到,因此我无法理解为什么加载消息和按钮未被禁用,即使计算完成也是如此。
有些事情需要注意。如果我注释掉creatRbeAC函数,则显示加载消息并禁用按钮。当creatRbeAC函数在代码中时,几乎就像忽略了那些函数一样。
有任何帮助吗?我将不胜感激。希望我提供了足够的信息。
答案 0 :(得分:0)
在我的实际应用中,我有类似的问题。 在我的Eventhandler中(没关系,如果有按钮处理程序或鼠标处理程序),我也不想禁用该应用程序并为我的arrayCollection使用一些过滤函数。
不幸的是,这个动作似乎需要太多的资源,特别是当应用程序在调试模式下运行时。我必须为下一次screnn刷新而烦恼。所以我尝试使用
在我的eventhandler中实现“applyFilterMethod”callLater(applyFilterMethod)
但它也不起作用。
Finally, the setTimeOut(applyFilterMethod,500)
解决了我的问题。所以,如果运气好的话,请尝试使用超时方法。
BR 弗兰克