2011-02-09 136 views
0

嘿, 我对我正在处理的一些Actionscript有点困惑。对于我的GUI,我已经为计算发生的时间写了四个函数。这些是showMessage(“加载文本...”),disableButtons(),clearMessage()和enableButtons()。他们在整个项目中都表现出色。 ShowMessage显示加载消息,disableButtons禁用按钮,因此无人可以点击任何内容,clearMessage在作业完成时清除加载消息,并且enableButtons将它们全部重新打开。不知道为什么我的程序似乎跳过一些功能?

出于某种原因,有一个按钮点击处理程序,这给我麻烦,我不知道为什么。我已经把它设置成与其他类似的(它们都可以工作),但是这个不显示消息或关闭我的按钮。这是我的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无法在这个按钮中找到Click处理函数或creatRbeAC函数,因此我不明白为什么加载消息和按钮没有被禁用,即使计算完成。

有些事情要注意。如果我注释掉creatRbeAC函数,则会显示加载消息并且按钮会禁用。就好像这些函数在代码中的creatRbeAC函数被忽略时一样。

任何帮助?我将不胜感激。希望我已经提供了足够的信息。

回答

0

在我的实际应用程序中,我有类似的问题。 在我的事件处理程序中(没有关系,如果有按钮处理程序或鼠标处理程序),我也不想禁用该应用程序并为我的arrayCollection使用一些过滤器函数。

不幸的是,这个动作似乎需要太多的资源,特别是当应用程序在调试模式下运行时。我必须为下一次刷新刷新感到刺痛。所以我尝试在我的事件处理程序中实现“applyFilterMethod”,但是它也不能工作。

Finally, the setTimeOut(applyFilterMethod,500) 

解决了我的问题。所以,如果你有运气,用超时方法尝试一下。

BR Frank

相关问题