Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Общие вопросы о Flash (не затрагивающие ActionScript) (http://www.flasher.ru/forum/forumdisplay.php?f=60)
-   -   странное поведение loadVariables (http://www.flasher.ru/forum/showthread.php?t=68906)

beginnerflasher2005 08.09.2005 12:43

странное поведение loadVariables
 
Создаем клип, добавляем динамический текст и связываем его с переменной rr.
В первом кадре вводим:

rr=1;
this.loadVariables("rr.txt");
trace(rr);

Никак не могу понять, что за ерунда такая:
trace выдаёт 1
а динам. поле показывает 1 и сразу 2 (в файле прописано rr=2)

FreeLander 08.09.2005 13:18

просто процесс загрузки переменных из файла занимает какое-то время, на тот момент, когда ты трэйсишь rr, загрузка ещё не завершилась

beginnerflasher2005 08.09.2005 15:57

а как же в этом случае поступать, т.е. продолжить выполнение кода с гарантией что значение изменилось?

beginnerflasher2005 08.09.2005 16:01

Пробовал так: - ролик "висит"

f=false;

rr=1;
this.loadVariables("rr.txt");
while (f==false) {};
trace(rr);

onData = function(){
f=true;
}

beginnerflasher2005 08.09.2005 16:15

А вообще, конечно, интересный принцип работы ...
Если я вызвал loadVariables - то, наверное, я хочу сейчас прочитать значения переменных, а не когда получится.
А выходит, что значение переменной поменяется в непредсказуемое время, когда вовсе уже и не надо (код выполняется дальше).
Смысл?!...

3dmax 08.09.2005 16:24

Я с этой проблемой столкнулся давно и мне предлжили такой вариант,
короче попробуй так:

loadVariables("rr.txt", "");
this.onEnterFrame=function()
{ if(rr) { //пока rr не станет чем-то, тоесть загрузится
trace(rr)
delete this.onEnterFrame;
}}
stop();

Я так уже много сделал и все работает. :cool:

А почему у тебя название файла и переменной одинаковые, не запутаешься? ;)

7thsky™ 08.09.2005 16:30

Смысл в том:

* Флэш timeline based, то есть привязка исполняемого сейчас кода к кадру, то есть кадр не кончиться и не перейдет на другой пока не очиститься стек функций

* Ты предлогаешь что на время пока твой файл будет грузиться, все должно не двигаться и ждать окончания загрузки? Смысл?

7thsky™ 08.09.2005 16:31

+ вообще хелп рулит, поиск тоже рулит, там это описанно и переписанно

beginnerflasher2005 08.09.2005 16:54

Это все хорошо - переход на следующие кадры, стеки и т.д.
Но с другой-то стороны зачем мне нужны эти следующие кадры, когда переменная "не с тем значением".

Хорошо, вот я в справке то и посмотрел:
-"Обработчик события onData наступает при получении данных, вызванных методами loadVariables или loadMovie ". А почему же не работает вышеприведенный код с onData. Или обработчик не может выполниться пока идет код в кадре? Если так, то значит loadVariables не ждет загрузки, а обработчик ждет,

beginnerflasher2005 08.09.2005 17:08

Цитата:

Сообщение от 3dmax
Я так уже много сделал и все работает. :cool:

А почему у тебя название файла и переменной одинаковые, не запутаешься? ;)

Спасибо, работает такой способ.
Не, не запутаюсь - тестовый кусочек кода.


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

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