2011-02-09 7 views
0

안녕하세요, 저는 약간의 액션 스크립트와 약간 혼동합니다. 내 GUI의 경우 컴퓨팅이 수행되는 동안 네 가지 기능을 작성했습니다. showMessage ("텍스트로드 중 ..."), disableButtons(), clearMessage() 및 enableButtons()입니다. 그들은 프로그램 전체에서 훌륭하게 작동합니다. ShowMessage는로드 메시지를 표시하고 disableButtons는 버튼을 비활성화하여 아무도 아무 것도 클릭 할 수 없도록하며 clearMessage는 작업이 완료되면로드 메시지를 지우고 enableButtons는 다시 모든 메시지를 켭니다.왜 내 프로그램이 일부 기능을 건너 뛰는 것 같지 않습니까?

어떤 이유인지, 나에게 문제를 일으키는 버튼 클릭 핸들러가 하나 있는데 그 이유를 모르겠습니다. 나는 그것과 비슷한 다른 사람들처럼 설정했는데 (모두 작동),이 메시지는 메시지를 표시하지 않거나 버튼을 닫지 않습니다. 여기

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 기능을했다 ... 내 경우 clickHandler ...

private function Buffer_Route_clickHandler():void 
     { 
      showMessage("Loading RBE Options"); 
      disableButtons(); 

      if(Buffer_Route.selected && rbeAC.length == 0){ 
       createRbeAC(); 
      } 
     } 

입니다 그리고 여기 creatRbeAC 기능입니다 코드를 추가하여 메시지를 추가했는지 확인하고 단추를 사용하지 않도록 설정하십시오. 나는 아직도 아무것도 얻지 않고있다. clearMessage 및 enableButtons는이 버튼 클릭 처리기 또는 creatRbeAC 함수에서 찾을 수 없기 때문에 컴퓨팅이 끝난 후에도 로딩 메시지 및 버튼이 비활성화되지 않은 이유를 이해할 수 없습니다.

몇 가지 유의 사항. creatRbeAC 함수를 주석 처리하면로드 메시지가 표시되고 버튼이 비활성화됩니다. 마치 creatRbeAC 함수가 코드에있을 때 그 함수가 무시되는 것과 거의 같습니다.

어떤 도움이 필요합니까? 나는 그것을 매우 감사 할 것이다. 잘만되면 나는 충분한 정보를 제공했다.

답변

0

내 실제 앱에는 비슷한 문제가 있습니다. 내 Eventhandler (단추 처리기 또는 마우스 처리기가있는 경우 중요하지 않음)에서 응용 프로그램을 사용하지 않도록 설정하고 내 arrayCollection에 대한 일부 필터 함수를 사용하지 않을 수도 있습니다.

응용 프로그램이 디버그 모드에서 실행될 때 불행히도,이 작업은 너무 많은 자원을 필요로하는 것 같습니다. 나는 다음 screnn 새로 고침을 위해 기색해야합니다. 그래서 나는 내 이벤트 핸들러에서 "applyFilterMethod"를

callLater(applyFilterMethod) 

과 같이 구현하려고 시도하지만 작동하지 않습니다.

Finally, the setTimeOut(applyFilterMethod,500) 

내 문제가 해결되었습니다. 그래서 운이 좋으면 타임 아웃 방법으로 시도해보십시오.

rob 프랭크

관련 문제