2009-08-28 3 views

ответ

4

setTimeout (замыкание, 0) создает новый стек событий. Я не понимаю вашу цель, если это решение не работает для вас. Какую цель вы пытаетесь достичь?

Flex имеет события ENTER_FRAME, Timer, callLater, setTimeout, setInterval, все, что задерживает вызовы и создает новые стеки выполнения.

Вы пытаетесь ввести код в текущий стек? Если это так, вам может потребоваться посмотреть примерно следующее: http://en.wikipedia.org/wiki/Active_object. Идея состоит в том, что вы нажимаете функции (замыкания) на массив, а активный контроллер объекта вытягивает следующий из списка, когда предыдущий запускается до завершения. Это самый простой случай. Вы можете написать более сложный, который будет иметь приоритетные стеки, такие как высокий, средний, низкий, с вашей собственной системой управления расписанием. (например, низкий уровень поощрения после слишком долгого ожидания).

Но эй! Дьявол кроется в деталях. Какова цель?

+0

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

+0

Итак, callLater не совсем то, что я ищу ... Но это может быть лучшее, что я получу, спасибо. –

+0

Не ненавидите setTimeout. Это было с самого начала JavaScript. Но если вам это нужно для произвольных задержек, возможно, что-то не так с вашим дизайном. Я никогда не нашел callLater надежным в ожидании. По крайней мере, с setTimout, вы знаете, как долго вы ждете, даже если это взломать. – Glenn

0

Взгляните на фазы захвата и пузырения событий as3. Я нашел эту приятную главу, которая четко объясняет процесс: http://books.google.com/books?id=yFNZGjqJe9IC&lpg=PA250&ots=oPB9HXIby7&dq=flash%20event%20bubbling%20phase&pg=PA250#v=onepage&q=&f=false

Также проверьте документацию класса EventDispatcher, объясняющую использование этих разных фаз.

+0

Прошу прощения ... Я не совсем понимаю, как это связано. –

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