![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Sep 2009
Сообщений: 65
|
amesqit, откуда мне знать, какие у него задачи и когда именно требуется загружать обработчик. Если человек спрашивает про паузу в коде, значит вызов обработчика у него идет следом за созданием загрузчика, а может вообще у него обработка кнопкой инициализируется...
На счёт 4 пункта понятно - загнался) |
|
|||||
|
Регистрация: Aug 2009
Сообщений: 5
|
такс....ну свою ошибку осознал...на самом деле надо было побольше кода
![]() ещё раз попробую донести свою задачу. Первый класс: loadData public class loadData { public var loadXMLdata:XML; public function loadData(nameXML) { var loader:URLLoader = new URLLoader(new URLRequest(nameXML)); loader.addEventListener(Event.COMPLETE, getDataXML); function getDataXML(e:Event):void { loadXMLdata = XML(e.target.data); } } } import loadData; public class createObj { public var getXML:XML; public function createObj(nameXML) { var loadXML:loadData = new loadData(nameXML); getXML = loadXML.loadXMLdata; //дальнейшие действия с полученными данными } } создавать объект после совершенного события не подходит так как в конструктор передается имя загружаемой XMLки да и к тому же loadData не должен быть прикручен ни к какому классу, а должен быть универсальным загрузчиком XML данных для любого обратившего к нему классу... попробовал вынести отдельным методом но тогда функция functionLoadXMLdata должна возвращать данные типа XML, а сам метод получения по евенту подразумевает вызов сторонней функции getDataXML и опять ступор так как functionLoadXMLdata успевает мне вернуть значение null до того как getDataXML присвоит ему значение. Ну в общем надеюсь понятен смысл задумки ![]() З.Ы. Idon все корявые коды с циклами я перепробовал, ничего кроме зависшего компа я не добился ![]() Последний раз редактировалось Gava; 04.09.2009 в 04:51. |
|
|||||
|
Регистрация: Nov 2007
Адрес: Moscow
Сообщений: 566
|
Да что вы все пытаетесь null-то присвоить? Подписывайтесь на события. Когда данные загрузятся, тогда и работайте с ними.
__________________
#flasher@irc.trg.ru:6667 |
|
|||||
|
strange mood
|
public class createObj { public var getXML:XML; public function createObj(nameXML) { //Запускается асинхронная загрузка данных var loadXML:loadData = new loadData(nameXML); //На данный момент ещё ничего не загрузилось getXML = loadXML.loadXMLdata; //Всё ещё не загрузилось //До сих пор не загрузилось //Да и вообще не загрузится, внутри этого блока доступ к данным получить нельзя } }
__________________
тонкий тролль, осеянный благодатью |
|
|||||
|
Регистрация: Aug 2009
Сообщений: 5
|
эммм...ну так что данный способ на корню глухая затея?
какой тогда вообще существует способ построения кода на основе полученных данных? не подгрузки картинок или чего то ещё, а именно загрузки конфигов из внешних источников для построения всего класса аля сцены аля сайта аля портала... просто у меня в голове не укладывается понятие модульности если одно и тоже повторяющееся действие нельзя объединить в один класс аля метод ![]() да и многоуважаемые мною господа из adobe не могли ведь предусмотреть асинхронный метод не предусмотрев синхронный? Или я слишком их идеализирую?![]() |
|
|||||
|
strange mood
|
Синхронный метод есть в AIR
А во флэше приходится довольствоваться только асинхронным. Использование событий - совершенно нормальная практика.
__________________
тонкий тролль, осеянный благодатью |
|
|||||
|
Регистрация: Sep 2009
Сообщений: 65
|
Если обойтись без доп. событий, то можно так попробовать:
public class loadData { public var loader:URLLoader; public function loadData(nameXML):void { loader = new URLLoader(new URLRequest(nameXML)); } } public class createObj { private var getXML:XML; private var loadXML:loadData public function createObj(nameXML):void { loadXML = new loadData(nameXML); loadXML.loader.addEventListener(Event.COMPLETE, getDataXML); } private function getDataXML(e:Event):void { loadXML.loader.removeEventListener(Event.COMPLETE, getDataXML); getXML = XML(e.target.data); //дальнейшие действия с полученными данными } } Последний раз редактировалось Idon; 04.09.2009 в 14:03. |
|
|||||
|
Регистрация: Nov 2007
Адрес: Moscow
Сообщений: 566
|
Цитата:
__________________
#flasher@irc.trg.ru:6667 |
|
|||||
|
Регистрация: Aug 2009
Сообщений: 5
|
Ну если так то все понятно, вроде бы...
Просто при реализации натолкнулся на бесконечное повторение одной и той же функции, а именно подгрузки XML через URLLoader и вот решил эти 4 строчки вынести в 1 класс ну и юзать его при необходимости. Как-то мне показалось что это лежит на поверхности и что отсутсвие в гугле готовых решений объясняется банальностью и тривиальностью что об этом даже никто не пишет ![]() Ну в общем спасибо всем кто учавствовал в моем разочаровании в adobe ![]() |
![]() |
![]() |
Часовой пояс GMT +4, время: 21:30. |
|
|
« Предыдущая тема | Следующая тема » |
|
|