![]() |
Можно ли на AS3 написать функцию которая возврашала бы содержимое файла?
Я возможно по не знанию попал в замкнутый круг.
Значит так я хочу написать класс который бы возврарашал содержимое файла. например так: FLoader.GetXmlFile(filename:string):XML; но я никак не пойму как мне это сделать. Дело втом что в AS3 насколько я знаю, загрузку можно сделать только через класс подобыный URLLoader. причем когда файл загрузиться будет вызвано событие. далее кусок псевдо кода Код:
public class DataLoader extends Sprite {мы ждем пока файл не загрузится, а потом возвращаем результат. но нифига не выходит потому что while просто прерывает исполнение, а файл в это время не грузиться. я бы уже сделал на делегатах, т.е. передавал классу загрузчику файла, объект и функцию, которую хочу вызвать при окончании загрзузки, так нет, делегаты упразднили( вообщем помогите. Возможно есть возможность не прерывать основной цикл программы? главное требование, получить содержимое файла сделав запрос к методу класса. |
Автору тему предупреждение, за не использование тэгов [сode][/сode]
|
А зачем запускать цикл, когда можно просто выловить событие?
|
Вообще это называется асинхроность, функция загружающая файл, не может загрузить его за доли секунды.
поэтому нет. |
Цитата:
извини. но вопроса ты не понял. никто не просит загружать файл за доли секунды. глобально задача выглядит так. классу рисовальщику нужны данные он их запрашивает у класса универсального поставщика данных, передав ему url. поставищик блокирует интерфейс, выводит транспорант "ждите идет загрузка" поставщик загружает данные по окончании загрузки поставщик передает данные рисовальщику. проблема как раз в "передает данные рисовальщику" пока не получаеться написать в рисовальщике примерно так Код:
data=Provider.getData("someurl.xml");пока похоже можно только сделать на интерфейсах и передавать поставщику ссылку на рисовальщика зы. спасибо за предупреждение, буду исправлятся |
Ну пусть твой поставщик будет вещателем. Ты говоришь ему, мол, загрузи данные и одновременно с этим подписываешься на события поставщика. Когда поставщик загрузит данные, он начнёт орать всем подписчикам, что данные загрузились и передаёт их в качестве параметра в событии. В этот момент твой рисовальщик получает эти данные (он же подписан на это событие), убирает транспорант и рисует (или что у тебя там...)
з.Ы. Всегда бы так объясняли свой вопрос и суть. Жаль, что сразу не смог объяснить. |
Цитата:
ты запустил функцию которая дает команду команду плееру загрузить файл. даже если файл загрузиться в контайнер пока эта функция работает, событие загрузки файла не произойдет, так как плеер положил событие в очередь, но переход к след элементу очереди только после того как очиститься стэк функций... так что это просто не возможно!!! |
2:__etc спасибо так наверно и сделаю.
3:7thsky™ на всякого мудреца довольно простоты:) вот твой ответ понятен. а Nirth нет, тем более в контесте "функция загружающая файл, не может загрузить его за доли секунды". |
вообщето такой ответ называется умствованием.
Нет это называется ленью, и слепой надеждой, что тебя всетаки поймут ;) Вообще у Sho Kuwamoto в блоге есть три отличные статьи по работе с асинхронными вызовами / RPC Dealing with asynchronous events, part 1 Dealing with asynchronous events, part 2 Dealing with asynchronous events, part 3 |
извините за офтоп
" 7thsky™ NIRTH'S FUN" - ну уж очень забавно =) |
| Часовой пояс GMT +4, время: 08:52. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.