![]() |
|
||||||||||
|
|||||
|
Регистрация: Feb 2011
Сообщений: 13
|
Здравствуйте. Во флеше есть ряд методов, которые не возвращают результат своей работы, а вызывают событие, куда передают результат. Например метод FileReference.load().
Можно ли обернув этот метод в другую функцию заставить выполниться линейно, т.е. чтобы было так: |
|
|||||
|
Modus ponens
|
Неа, в большинстве случаев нет. В некоторых случаях можно через какой-нибудь хак, типа вызова фунции за пределами флеша, которая будет синхронно делать то же самое, что во флеше бы делалось асинхронно, но как правило ничего хорошего из этого не выйдет.
__________________
Hell is the possibility of sanity |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Гораздо эффективней будет поменять мышление и мыслить событиями, а не кадрами. Дело не в том, куда передается результат, а когда он будет получен. Время на получение файла неизвестно и никак не зависит от кода, но уж точно не равно нулю. Измените свою логику – другого пути просто нет, Вам не создать мгновенный интернет во всем мире, по-крайней мере не сейчас))) Приложение это не линейная последовательность [кадров, процедур], приложение реагирует на события, время и порядок которых неизвестны (зависят от действий юзера) – логично что оно состоит из блоков, реагирующих на определенные события. Линейности тут просто нет места и никогда не было.
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Feb 2011
Сообщений: 13
|
Мне нужно из выбранных пользователем файлов (FileReferenceList.browse()) получить информацию из этих файлов, записать инфу в массив и вызвать функцию JS. Хотелось бы так, но getData() использует load():
Если добавлять данные по событию загрузки, то когда вызывать ExternalInterface.call('flashExternalCall_selectedFilesHandler', data)? Последний раз редактировалось Deadly0; 17.06.2011 в 01:43. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Создавать очередь с отслеживанием, и когда все будут загружены - переходить к следующему этапу.
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Feb 2011
Сообщений: 13
|
Т.е при каждом возникновении события загрузки файла, проверять все ли файлы обработаны и тогда вызвать JS функцию?
Это считается правильным подходом? |
|
|||||
|
В мануле как раз рассматривается такой вариант с LIST_COMPLETE event:
http://help.adobe.com/en_US/FlashPla...renceList.html
__________________
RTFM |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Ну идея такая, да. Реализация конечно содержит больше.. нюансов. Например push не гарантирует порядок в data как в files, а он бывает важен (возможно, не в такой ситуации).
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Feb 2011
Сообщений: 13
|
S-ed, Wolsh, спасибо, вроде бы идею понял
![]() |
![]() |
![]() |
Часовой пояс GMT +4, время: 02:55. |
|
|
« Предыдущая тема | Следующая тема » |
|
|