Actionscript: переключение обратно в предыдущую функцию из функции обработчика событий. - PullRequest
0 голосов
/ 14 мая 2010

Мне нужно вернуться к своей исходной функции после захвата события (загрузки чего-либо) с помощью другой функции. Исходная функция должна возвращать значение, которое зависит от загруженных данных. Итак, я бы хотел приостановить исходную функцию на время, необходимое для загрузки, и функцию обработчика событий, чтобы завершить свою работу, и возобновить ее после этого.

Очевидный способ - установить значение флага (исходная функция и обработчик событий находятся в одном классе) и заставить исходную функцию проверять его, пока функция обработчика событий не изменит флаг. Но это было бы расточительно, и моя AS уже достаточно медленная :) [другие части приложения используют тяжелую графику].

Есть ли другой способ? Как событие, которое захватывается «в середине» функции? Или какая-то другая форма управления потоком?

Ответы [ 2 ]

2 голосов
/ 14 мая 2010

Вам нужно будет разделить функцию, ожидающую обработчик события, на обратный вызов, который возобновляет оставшуюся часть кода после того, как событие было запущено:

public function non_blocking():void {
   // code that needs to run before the event here]

   var callback:Function = function(e:Event):void {
      // test return type here
      // ... continue with the rest of your code
   };   

   addEventListener(YOUR_EVENT_TYPE, callback);
}
0 голосов
/ 15 мая 2010

Так не работает. У вас не может быть кода, который просто сидит и ждет завершения чего-то еще, выполнение Actionscript только однопоточное Вам нужно сделать так, как предлагает jdeseno, разбить его на несколько функций.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...