Как остановить выполнение в ActionScript

Если Вы составляете новый список, можно обмануть конструктора, который берет начальные и конечные итераторы:

std::list<SomeType> myList(v.begin(), v.end());

ответ Kasprzol прекрасен, если у Вас есть существующий список, Вы хотите добавить к.

6
задан RRUZ 1 October 2009 в 22:58
поделиться

3 ответа

Нет. Нет сна. Сожалею.

Варианты см. В моем ответе: ActionScript: добавление закрытия в стек событий? . Здесь не говорится о сне, но я попытался дать обзор отложенного вызова функций.

3
ответ дан 18 December 2019 в 04:54
поделиться

Невозможно приостановить все выполнение приложения, как в PHP, но есть обходные пути (если вы не установите точку останова или не создадите преднамеренную ошибку времени выполнения, не думайте, что вы имели в виду ). Вероятно, это связано с тем, что обычно flash-приложения предназначены для выполнения всех скриптов менее чем за один «кадр».

Обычно можно «приостанавливать» анимацию веб-сайта, когда пользователь расфокусирует ее. Это можно сделать, прослушав Event.DEACTIVATE, а затем удалив прослушиватели ENTER_FRAME и уничтожив все текущие процессы.

Вы также можете создать центральный EventDispatcher для замены внутреннего ENTER_FRAME, таким образом вы легко контролируете скорость выполнения, а также приостанавливаете / возобновление (хотя не перестанет выполнять сценарии или асинхронные обработчики, такие как загрузчики и т. д.).

0
ответ дан 18 December 2019 в 04:54
поделиться

Да, есть, но имейте в виду 15-секундный тайм-аут скрипта. (Вы можете изменить этот 15-секундный тайм-аут скрипта в настройках публикации ...)

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

Как бы вы ни пытается выполнить, вероятно, вместо этого вызывает прослушиватель событий.

//adding this ENTER_FRAME event listener just to show that the script pauses for one
// second before the first frame executes
addEventListener( Event.ENTER_FRAME, onFrame );

function onFrame( event:Event ):void {

    trace( "first frame occurs after pause of", getTimer() + " ms" );
    removeEventListener( Event.ENTER_FRAME, onFrame );

};

var startTime:int = getTimer();
var pauseTime:int = 1000;

while( ( getTimer() - startTime ) < pauseTime ) {
    //do nothing... we're effectively pausing here...
}
-4
ответ дан 18 December 2019 в 04:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: