Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 13.06.2006, 19:11
redbaron вне форума Посмотреть профиль Отправить личное сообщение для redbaron Найти все сообщения от redbaron
  № 1  
Ответить с цитированием
redbaron

Регистрация: Jun 2006
Сообщений: 15
По умолчанию Можно ли на AS3 написать функцию которая возврашала бы содержимое файла?

Я возможно по не знанию попал в замкнутый круг.

Значит так я хочу написать класс который бы возврарашал содержимое файла.

например так:

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.
Старый 14.06.2006, 00:05
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 2  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
Автору тему предупреждение, за не использование тэгов [сode][/сode]
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

Старый 14.06.2006, 00:25
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 3  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
А зачем запускать цикл, когда можно просто выловить событие?

Старый 14.06.2006, 00:27
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 4  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
Вообще это называется асинхроность, функция загружающая файл, не может загрузить его за доли секунды.
поэтому нет.
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

Старый 14.06.2006, 14:02
redbaron вне форума Посмотреть профиль Отправить личное сообщение для redbaron Найти все сообщения от redbaron
  № 5  
Ответить с цитированием
redbaron

Регистрация: Jun 2006
Сообщений: 15
Цитата:
Сообщение от Nirth
Вообще это называется асинхроность, функция загружающая файл, не может загрузить его за доли секунды.
поэтому нет.
вообщето такой ответ называется умствованием.
извини.
но вопроса ты не понял.
никто не просит загружать файл за доли секунды.

глобально задача выглядит так.

классу рисовальщику нужны данные
он их запрашивает у класса универсального поставщика данных, передав ему url.
поставищик блокирует интерфейс, выводит транспорант "ждите идет загрузка"
поставщик загружает данные
по окончании загрузки поставщик передает данные рисовальщику.

проблема как раз в "передает данные рисовальщику"

пока не получаеться написать в
рисовальщике примерно так

Код:
 data=Provider.getData("someurl.xml");
это как раз и описывалось в вопросе.

пока похоже можно только сделать на интерфейсах
и передавать поставщику ссылку на рисовальщика

зы. спасибо за предупреждение, буду исправлятся

Старый 14.06.2006, 14:18
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 6  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Ну пусть твой поставщик будет вещателем. Ты говоришь ему, мол, загрузи данные и одновременно с этим подписываешься на события поставщика. Когда поставщик загрузит данные, он начнёт орать всем подписчикам, что данные загрузились и передаёт их в качестве параметра в событии. В этот момент твой рисовальщик получает эти данные (он же подписан на это событие), убирает транспорант и рисует (или что у тебя там...)

з.Ы. Всегда бы так объясняли свой вопрос и суть. Жаль, что сразу не смог объяснить.

Старый 14.06.2006, 15:21
7thsky™ вне форума Посмотреть профиль Отправить личное сообщение для 7thsky™ Найти все сообщения от 7thsky™
  № 7  
Ответить с цитированием
7thsky™
Flash Aксакал
 
Аватар для 7thsky™

Регистрация: Jun 2005
Сообщений: 636
Цитата:
Сообщение от redbaron
вообщето такой ответ называется умствованием.
извини.
но вопроса ты не понял.
никто не просит загружать файл за доли секунды.
Это ты не понял ответа. Все общение плеера с окружением ассинхронное. и то что ты предлогаешь - физически во флэше не возможно сделать.


ты запустил функцию которая дает команду команду плееру загрузить файл. даже если файл загрузиться в контайнер пока эта функция работает, событие загрузки файла не произойдет, так как плеер положил событие в очередь, но переход к след элементу очереди только после того как очиститься стэк функций... так что это просто не возможно!!!

Старый 14.06.2006, 16:16
redbaron вне форума Посмотреть профиль Отправить личное сообщение для redbaron Найти все сообщения от redbaron
  № 8  
Ответить с цитированием
redbaron

Регистрация: Jun 2006
Сообщений: 15
2:__etc спасибо так наверно и сделаю.


3:7thsky™ на всякого мудреца довольно простоты
вот твой ответ понятен. а Nirth нет, тем более в контесте "функция загружающая файл, не может загрузить его за доли секунды".

Старый 14.06.2006, 16:52
Nirth вне форума Посмотреть профиль Отправить личное сообщение для Nirth Посетить домашнюю страницу Nirth Найти все сообщения от Nirth
  № 9  
Ответить с цитированием
Nirth
4AM Games
 
Аватар для Nirth

блогер
Регистрация: Nov 2002
Адрес: Sofia
Сообщений: 6,264
Записей в блоге: 1
Отправить сообщение для Nirth с помощью ICQ Отправить сообщение для Nirth с помощью AIM Отправить сообщение для Nirth с помощью MSN Отправить сообщение для Nirth с помощью Yahoo Отправить сообщение для Nirth с помощью Skype™
вообщето такой ответ называется умствованием.
Нет это называется ленью, и слепой надеждой, что тебя всетаки поймут

Вообще у Sho Kuwamoto в блоге есть три отличные статьи по работе с асинхронными вызовами / RPC
Dealing with asynchronous events, part 1
Dealing with asynchronous events, part 2
Dealing with asynchronous events, part 3
__________________
Я перестал переписывать, начал редактировать, еще лет 15 и я стану писателем ^_^

Старый 14.06.2006, 17:08
Usnul вне форума Посмотреть профиль Отправить личное сообщение для Usnul Посетить домашнюю страницу Usnul Найти все сообщения от Usnul
  № 10  
Ответить с цитированием
Usnul
 
Аватар для Usnul

Регистрация: Mar 2001
Адрес: во сне
Сообщений: 2,701
Отправить сообщение для Usnul с помощью ICQ
извините за офтоп
" 7thsky™
NIRTH'S FUN"
- ну уж очень забавно =)
__________________
I'm only happy when it rains.
Waka Laka

Создать новую тему Ответ Часовой пояс GMT +4, время: 09:43.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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