![]() |
|
||||||||||
|
|||||
|
Регистрация: Sep 2009
Сообщений: 12
|
Есть следующий код:
for(j=0;y_koor+KVADRAT_SIDE<_root._height;j++) { for(i=0;x_koor+KVADRAT_SIDE<_root._width;i++) { n=n+1; _root.attachMovie("kvadrat", "kvadrat"+n, n, {_x:x_koor,_y:y_koor}); x_koor=x_koor+KVADRAT_SIDE; } y_koor=y_koor+KVADRAT_SIDE; x_koor=0; } Я знаю текущее количество созданных квадратиков и знаю сколько их должно быть в итоге . Хочу отображать на экране процесс формирования квадратов в процентах: , но реально получаю другой результат - приложение подвисает, потом выходит служебное окно "Приложение работает слишком медленно. Прервать выполнение кода? Да/нет". Если нажимаю нет, то все мои trace'ы пачкой выводятся. Я понимаю, что нужно ставить задержку во время выполнения, но не могу сообразить, как это сделать? |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
|
1. Весь код в кадре, кроме описанных внутри обработчиков событий, выполняется в одном кадре.
2. Пока не выполнится весь код кадра, графически ничего не отображается. 3. Пока не выполнится весь код кадра, новый кадр не отобразится. 4. На отображение одного кадра отведен лимит в 15 секунд. 5. При превышении лимита показывается сообщение "Приложение работает слишком медленно. Прервать выполнение кода? Да/нет" Итого: Вы создали цикл, код внутри которого не является обработчиком событий, поэтому, пока он не выполнится не будут показаны ваши квадратики, и не будет перехода на новый кадр, что вызывает сообщении о медленной работе. Поэтому, цикл надо выполнять не весь за раз, по частям, вызывая следующий кусок либо через onEnterFrame или setTimeout/setInterval |
|
|||||
|
[+1 15.06.10]
Регистрация: Feb 2009
Сообщений: 56
|
может быть Flasm поможет? сам я им не пользовался, только читал:
Цитата:
|
![]() |
![]() |
Часовой пояс GMT +4, время: 07:59. |
|
|
« Предыдущая тема | Следующая тема » |
|
|