Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   Порядок выполнения функций (http://www.flasher.ru/forum/showthread.php?t=43153)

Ondyon 19.02.2003 17:34

Порядок выполнения функций
 
взял пример с чтением текстового файла через XML
проблема:
результат выполнения функции почему-то появляется
не сразу после ее выполнения а через неопределенное время
(точнее, когда выполнится хотя бы один Idle loop Windows)

#include "ldtxt.as" // взято с flasher.ru (attached)

function LoadText(fileName, textvar) {
textSource = new TextFile(true);
textSource.onLoad = function(ok) {
if (ok) {
set(textvar, this.content);
trace("in load");
} else {
set(textvar, "error loading file "+fileName);
}
};
trace("111");
textSource.load(fileName);
trace("222");
}

так вот, сначала печатается 111 потом 222
потом еще куча всего из разных кадров разных мувиков,
и только потом trace("in load").
при этом я не могу использовать результат
функции LoadText, поскольку результат
появляется уже после выполнения всей программы :((

как с этим бороться ?

llllllllll 19.02.2003 17:58

Re: Порядок выполнения функций
 
... все так и есть, сначала "111", потом "222", так как textSource.load(fileName); дает команду грузить файл, а textSource.onLoad сработет только когда поступят данные, если тебе нада что-то впихнуть между трейсами - переписывай load ...

Ondyon 19.02.2003 19:51

никак
 
Дык, данные из файла берутся.
должны сразу поступать.

пробовал делать после load
while(data=="") {} //do nothing
виснет в бесконечный цикл

если вызов функции на кнопке в on(click)
а проверка данных on(release) - работает

если вызов в одном кадре
а результат в другом кадре мувика (например в 100ом!)
- данные пустые :((
похоже, функция запускается
в параллельном процессе и
данные поступают только
когда происходит ожидание
ввода пользователя Idle Loop или что-то в этом роде.

может быть, как-то можно в том бесконечном
цикле вместо do_nothing как-то заставить винду
продышаться и выполнить-таки функцию
типа Refresh какой-нибудь....

Nox Noctis 19.02.2003 22:21

оххх... сколько же раз это уже было...

например
смотри первые четыре поста
(потом пошел классический флуд имени лехаса и балтики :)) )

ты пропустил ожидание загрузки.
онЛоад там неспроста сделан -
абсолютно неизвестно сколько именно времени пройдет до полной загрузки данных


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

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