Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 11.08.2007, 17:11
Golovach вне форума Посмотреть профиль Отправить личное сообщение для Golovach Посетить домашнюю страницу Golovach Найти все сообщения от Golovach
  № 1  
Ответить с цитированием
Golovach
 
Аватар для Golovach

Регистрация: Nov 2005
Адрес: Крым
Сообщений: 462
Отправить сообщение для Golovach с помощью ICQ
По умолчанию Цикл while, бесконечный...

Делаю загрузку большого количество данных (строки, числа) из php во флеш.
Php передает строку вида:

Код:
streets=1-го мая|Ленинградская|Ярошенко&num=1000&done=1&
Ловлю все это во флеше:

1-й кадр
Код:
this.createEmptyMovieClip("streets_y", this.getNextHighestDepth());
loadVariables("http://map.ru/?pos_y", streets_y);
if (streets_y.done != 1){
    trace("нет еще");
}
else{
    nextScene();
}
2-й кадр:
Код:
gotoAndPlay(1);
Так все работает на ура. А теперь внимание вопрос: когда я делаю все "по умному", т.е. вместо двух кадров один и пишу в нем:

Код:
this.createEmptyMovieClip("streets_y", this.getNextHighestDepth());
loadVariables("http://map.ru/?pos_y", streets_y);
while (streets_y.done != 1){
    trace("нет еще");
}
nextScene();
...при этом цикл получается бесконечным... Объясните мне, убогому, что здесь не так. Возможно ДНК?
Вопрос вдогонку. Флеш самостоятельно останавливает выполнение моего скрипта с алертом. На чем базируется его решение об остановке скрипта и можно ли это отследить?
Заранее спасибо.

Старый 11.08.2007, 19:32
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Все здесь не так. Начиная от использования такого архаизма, как loadVariables вместо нормального LoadVars, заканчивания отсутствием понимая работы этого самого loadVariables. Флеш однопоточен и асинхронен, цикл while наглухо убивает все остальное, никаких действией (окончание загрузки, создание свойства done у streets_y) не сможет произойти, пока цикл не будет выполнен. А в силу асинхронности, окончание загрузки происходит гораздо позже выполнения кода после вызова loadVariables. Но окончание загрузки никогда не произойдет, потому что код сразу после loadVariables ещё не выполнен.
Резюме: использовать LoadVars.

Старый 11.08.2007, 19:36
Golovach вне форума Посмотреть профиль Отправить личное сообщение для Golovach Посетить домашнюю страницу Golovach Найти все сообщения от Golovach
  № 3  
Ответить с цитированием
Golovach
 
Аватар для Golovach

Регистрация: Nov 2005
Адрес: Крым
Сообщений: 462
Отправить сообщение для Golovach с помощью ICQ
Спасибо за развернутый ответ.

Создать новую тему Ответ Часовой пояс GMT +4, время: 13:56.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 13:56.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.