![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jun 2006
Сообщений: 15
|
Я возможно по не знанию попал в замкнутый круг.
Значит так я хочу написать класс который бы возврарашал содержимое файла. например так: FLoader.GetXmlFile(filename:string):XML; но я никак не пойму как мне это сделать. Дело втом что в AS3 насколько я знаю, загрузку можно сделать только через класс подобыный URLLoader. причем когда файл загрузиться будет вызвано событие. далее кусок псевдо кода public class DataLoader extends Sprite {
var uploaded:Boolean=false;
public function load(filename:String):String{
var loader:URLLoader = new URLLoader();
configureListeners(loader);
var request:URLRequest = new URLRequest(filename);
loader.load(request);
uploaded=false;
while(uploaded==false){ doNothing()}; return loader.data.toString();
}
public function doNothing(){
// ни чего не делаем но главный цикл программы должен
//продолжаться
}
private function configureListeners(dispatcher:IEventDispatcher):void {
dispatcher.addEventListener(Event.COMPLETE, completeHandler);
}
private function completeHandler(event:Event):void {
uploaded=true;
}
}
мы ждем пока файл не загрузится, а потом возвращаем результат. но нифига не выходит потому что while просто прерывает исполнение, а файл в это время не грузиться. я бы уже сделал на делегатах, т.е. передавал классу загрузчику файла, объект и функцию, которую хочу вызвать при окончании загрзузки, так нет, делегаты упразднили( вообщем помогите. Возможно есть возможность не прерывать основной цикл программы? главное требование, получить содержимое файла сделав запрос к методу класса. Последний раз редактировалось Nirth; 14.06.2006 в 00:05. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
А зачем запускать цикл, когда можно просто выловить событие?
|
|
|||||
|
4AM Games
|
Вообще это называется асинхроность, функция загружающая файл, не может загрузить его за доли секунды.
поэтому нет.
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^ |
|
|||||
|
Регистрация: Jun 2006
Сообщений: 15
|
Цитата:
извини. но вопроса ты не понял. никто не просит загружать файл за доли секунды. глобально задача выглядит так. классу рисовальщику нужны данные он их запрашивает у класса универсального поставщика данных, передав ему url. поставищик блокирует интерфейс, выводит транспорант "ждите идет загрузка" поставщик загружает данные по окончании загрузки поставщик передает данные рисовальщику. проблема как раз в "передает данные рисовальщику" пока не получаеться написать в рисовальщике примерно так это как раз и описывалось в вопросе. пока похоже можно только сделать на интерфейсах и передавать поставщику ссылку на рисовальщика зы. спасибо за предупреждение, буду исправлятся |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Ну пусть твой поставщик будет вещателем. Ты говоришь ему, мол, загрузи данные и одновременно с этим подписываешься на события поставщика. Когда поставщик загрузит данные, он начнёт орать всем подписчикам, что данные загрузились и передаёт их в качестве параметра в событии. В этот момент твой рисовальщик получает эти данные (он же подписан на это событие), убирает транспорант и рисует (или что у тебя там...)
з.Ы. Всегда бы так объясняли свой вопрос и суть. Жаль, что сразу не смог объяснить. |
|
|||||
|
Flash Aксакал
Регистрация: Jun 2005
Сообщений: 636
|
Цитата:
ты запустил функцию которая дает команду команду плееру загрузить файл. даже если файл загрузиться в контайнер пока эта функция работает, событие загрузки файла не произойдет, так как плеер положил событие в очередь, но переход к след элементу очереди только после того как очиститься стэк функций... так что это просто не возможно!!! |
|
|||||
|
Регистрация: Jun 2006
Сообщений: 15
|
2:__etc спасибо так наверно и сделаю.
3:7thsky™ на всякого мудреца довольно простоты ![]() вот твой ответ понятен. а Nirth нет, тем более в контесте "функция загружающая файл, не может загрузить его за доли секунды". |
|
|||||
|
4AM Games
|
вообщето такой ответ называется умствованием.
Нет это называется ленью, и слепой надеждой, что тебя всетаки поймут ![]() Вообще у Sho Kuwamoto в блоге есть три отличные статьи по работе с асинхронными вызовами / RPC Dealing with asynchronous events, part 1 Dealing with asynchronous events, part 2 Dealing with asynchronous events, part 3
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^ |
|
|||||
|
извините за офтоп
" 7thsky™ NIRTH'S FUN" - ну уж очень забавно =)
__________________
I'm only happy when it rains. Waka Laka |
![]() |
![]() |
Часовой пояс GMT +4, время: 10:27. |
|
|
« Предыдущая тема | Следующая тема » |
|
|