2013-05-22 3 views
0

Я никогда не работал над сценарием действий. нужна помощь со слушателем. Я звоню и событие DrawManager.ZOOM_TO_SELECTION, но мне нужно дождаться завершения этого события, прежде чем я вызову следующую функцию «saveMapImage». Может ли кто-нибудь сказать мне, как это сделать с примером кода?ActionScript: как проверить даже завершение?

public function saveMapImageAndForward(projectLocationWKT:String, projectMapType:String, hasMapImageFromIPaCMap:String, projectName:String):void { 
     this.projectLocationWKT = projectLocationWKT; 
     this.projectMapType = projectMapType; 
     this.hasMapImageFromIPaCMap = hasMapImageFromIPaCMap; 
     this.projectName = projectName; 

     //GlobalDispatcher.dispatchEvent(new Event(Event.COMPLETE)); 

     GlobalDispatcher.dispatchEvent(new AppEvent(DrawManager.ZOOM_TO_SELECTION)); 

     //GlobalDispatcher.removeEventListener 

     saveMapImage(); 
    } 

Заранее спасибо.

ответ

0
public function someFunctionCalledAheadOfTime():void 
{ 
    . 
    . 
    . 
    GlobalDispatcher.addEventListener(DrawManager.ZOOM_TO_SELECTION, saveMapImage); 
    . 
    . 
    . 
} 

public function saveMapImageAndForward(projectLocationWKT:String, projectMapType:String, hasMapImageFromIPaCMap:String, projectName:String):void { 
    this.projectLocationWKT = projectLocationWKT; 
    this.projectMapType = projectMapType; 
    this.hasMapImageFromIPaCMap = hasMapImageFromIPaCMap; 
    this.projectName = projectName; 

    //GlobalDispatcher.dispatchEvent(new Event(Event.COMPLETE)); 

    GlobalDispatcher.dispatchEvent(new AppEvent(DrawManager.ZOOM_TO_SELECTION)); 

    //GlobalDispatcher.removeEventListener 

    //saveMapImage(); 
} 

private function saveMapImage(pEvent:AppEvent):void 
{ 
    . 
    . 
    . 
} 

EDIT: Похоже, что AppEvent не является стандартным классом, и он может быть одним из ваших. Я основываю это на предположениях, которые AppEvent наследует от Event, и что конструктор с одним аргументом работает так же, как и в случае обычного события.

+0

другой способ сделать это с помощью ZoomEvent.ZOOM_END. Но если карта уже увеличена, это событие никогда не будет срабатывать. Возможно, вам потребуется добавить таймер для перенаправления на альтернативный путь, если ваша программа прослушивает событие ZoomEvent.ZOOM_END. . – Patty

Смежные вопросы