|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Jul 2013
Адрес: Каскелен
Сообщений: 86
|
что такое исключение ScriptTimeoutError и зачем оно нужно?
в книге Мука написано:
"Чтобы избежать появления исключений ScriptTimeoutError, весь код должен быть разработан таким образом, чтобы его выполнение завершалось в течение интервала, определяемого параметром компиляторатах-execution-time. Для выполнения задачи, которой требуется больше времени, чем позволяет разрешенный лимит времени, разбейте ее на части, которые могут быть выполнены в течение времени, определяемого параметром max-execution-time, а затем используйте класс Timer, чтобы организовать выполнение этих частей кода." не понимаю ничего, как это работает? т.е. код выполняется как-то частями между событиями ENTER_FRAME что ли? и может не успеть выполниться, если слишком много кода или про что это? :\\ |
|
|||||
Допустим есть цикл (но не обязаетльно цикл), в котором очень увесистая обработка объектов, например перекодировка изображений. Или цикл, с бесконечным выполнением, как например while(true) {}
Если не будет таймаута на выполнение, такой код запросто повесит все приложение или даже все устройство. А по таймауту, зависший код в любом случае рубанется |
|
|||||
Регистрация: Oct 2006
Сообщений: 2,281
|
Цитата:
|
|
|||||
Регистрация: Jul 2013
Адрес: Каскелен
Сообщений: 86
|
а я почему-то подумал, что наоборот... что следующий ENTER_FRAME наступит сам и если за это время код предыдущего не выполнился, то всё - вылезет это исключение... не понимаю вообще как код зависит от ENTER_FRAME?
получается, что ENTER_FRAME есть как бы двух видов что ли? один - который принудительный (24 кадра в сек.) а второй - это когда сделали addChild в коде? и при чём тут код? или имеется в виду только код, когда функция выполняется при подписке на событие ENTER_FRAME? Добавлено через 4 минуты до прочтения этой главы думал, что кадры (и соответственно события кадров ENTER_FRAME) есть только у MovieClipa... а теперь вроде как, получается, что и у Sprite есть? или это ENTER_FRAME сцены? ещё сильнее запутался, какой там код может не успеть выполниться... :\ |
|
|||||
Всё очень просто. Флешь плеер работает таким образом:
КАДР 1: 1. Выполняет ваш код. 2. Рисует картинку на экране. КАДР 2: 1. Выполняет код. 2. Рисует картинку. КАДР 3: 1. Выполняет код. 2. Рисует картинку. ... И так бесконечно, пока вы не закроете окно флешь плеера. Событие EnterFrame получают любые дисплей объекты, подписавшиеся на него. Даже те, что не мувиклипы и даже те, что не находятся на экране. Вы правильно поняли, это событие относится к сцене.
__________________
Дети не должны знать о своих родителях |
|
|||||
Регистрация: Jul 2013
Адрес: Каскелен
Сообщений: 86
|
а если у меня на сцене кодом создан только один спрайт, то всё равно идёт обновление stage 24 кадра в сек даже если я не делаю addChild?
|
|
|||||
Регистрация: Oct 2006
Сообщений: 2,281
|
Цитата:
Цитата:
|
|
|||||
Регистрация: Jun 2014
Сообщений: 558
|
энтер-фрейм что-то вроде того же таймера, вы указываете максимальное количество кадров в секунду, а вот успеет ли он их выполнить, вопрос второй. К примеру создайте движущийся объект и поиграйтесь с количеством кадров
|
|
|||||
Цитата:
Цитата:
__________________
There is no thing in this world that is not simple. |
|
|||||
__________________
משיח לא בא משיח גם לא מטלפן |
Часовой пояс GMT +4, время: 10:25. |
|
« Предыдущая тема | Следующая тема » |
|
|