Доброго времени суток, мастера.
Извените за путоное название. Прошу не плюсить более одного раза
Есть функция, кооторая каждые н секунд создает в мувике текстовые поля.
при переходе в необходимый раздел:
chat_ref_f=setInterval(chat_refresh,_global.chat_ref_time);
Далее функция должна обратиться к скрипту который возвращает сообщения за последние н мин. каждый раз надо выводить только "свежие" сообщения.
Я проверяю количество присланых сообщений и если оно меньше чем количество сообщений выведеных в прошлый раз, то я запускаю ф-ю очистки поля вывода от всех созданых в ней текстовых полей.
function clean()
{
this.ScrollBody.unloadMovie();
this.createEmptyMovieClip("ScrollBody",200);
}
(Если оно больше или равно, то старые поля перезаписываються во время создания тхт полей на той же глубине)
Но это привело к странному эфекту - поле то очищаеться. тест на мгновение появляеться и исчезает. и поле чистое до следующего запуска ф-и, в котором не вызываеться процедура очистки ...
Я пришол к выводу что процедура очистки запускаеться ПОСЛЕ того как вывело сообщения...
Я решил сделать задержку между проц. очистки и выводом на экран.
_global.last_mess - к-во сообщений в прошлый раз
$bg_text.length - к-во сообщений в этот раз
_root.Chat_P.chat_scroll.clean_flag - флаговая переменная индицирующая окончание выполнения процедуры.
if(_global.last_mess<$bg_text.length)
{
_root.Chat_P.chat_scroll.clean_flag=0;
_root.Chat_P.chat_scroll.clean();
while(_root.Chat_P.chat_scroll.clean_flag==0)
{
}
}
в ф-ю очистки добавлена (последней) строка
clean_flag=1;
Это привело к ГЕНИАЛЬНОМУ результату - скрипт весит бродилку. Через некоторое время она спрашивает остановить ли обработку скрипта. Если говоришь нет - виснет наглухо.
Мастера, помогите пожалуста разобраться - почему на самом деле исчезают текстовые поля и как с этим бороться.
Очень надеюсь на вашу помощь.
С уважением. Ворон.