![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jan 2011
Сообщений: 8
|
Уважаемые форумчане! Я новичек во Flash. Подскажите, пожалуйста, как из функции прослушивателя событий переопределить глобальные переменные?
Например, вот такой код: public class xml_loader extends Sprite { public var film:Array = new Array(); public var time:Array = new Array(); public var pas:Array = new Array(); public var xml:XML = new XML(); public function xml_loader(location:String) { var url:URLRequest = new URLRequest(location); var loader:URLLoader = new URLLoader(url); loader.addEventListener(Event.COMPLETE, xmlLoaded); function xmlLoaded(event:Event):void { xml = XML(loader.data); for(var i = 0; i < xml.children().length(); ++i){ time[i] = xml.children()[i].attribute("time"); film[i] = xml.children()[i].attribute("label"); pas[i] = xml.children()[i].attribute("url"); } } } } Последний раз редактировалось Hoster2010; 13.01.2011 в 15:45. |
|
|||||
|
они не глобальные переменные, а публичные свойства класса, которые доступны в любом месте класса
__________________
http://cleptoman.free-lance.ru achivements: дважды благословлен на воровство. осеяный благодатью |
|
|||||
|
Регистрация: Jan 2011
Сообщений: 8
|
Мне нужно загрузить xml с внешнего источника и разбить его данные по масивам(в данном случае свойства класса). Я понимаю, что они доступны из любого места в классе. Как сделать, чтобы ф-я xmlLoaded заполнила нужные мне свойства класса, ведь передать их ей по ссылке не представляется возможным. Может, внешний xml можно загрузить другим способом без прослушки события "complete"?
|
|
|||||
|
Регистрация: Jan 2011
Сообщений: 8
|
Да, но эти данные доступны только в пределах ф-и xmlLoaded как локальные переменные, а вне ее они undefined.
|
|
|||||
|
Вынесите вложенную функцию из функции. Вот теперь после форматирования это видно стало.
public class xml_loader extends Sprite { public var film:Array = new Array(); public var time:Array = new Array(); public var pas:Array = new Array(); public var xml:XML = new XML(); public function xml_loader(location:String) { var url:URLRequest = new URLRequest(location); var loader:URLLoader = new URLLoader(url); loader.addEventListener(Event.COMPLETE, xmlLoaded); } private function xmlLoaded(event:Event):void { xml = XML(loader.data); for(var i = 0; i < xml.children().length(); ++i){ time[i] = xml.children()[i].attribute("time"); film[i] = xml.children()[i].attribute("label"); pas[i] = xml.children()[i].attribute("url"); } } }
__________________
тут я |
|
|||||
|
Регистрация: Jan 2011
Сообщений: 8
|
package { import flash.events.Event; import flash.net.URLLoader; import flash.net.URLRequest; import flash.xml.XMLDocument; public class xml_loader { public var film:Array = new Array(); public var seconds:Array = new Array(); public var pas:Array = new Array(); public function xml_loader(load_from:String) { var url:URLRequest = new URLRequest(load_from); var loader:URLLoader = new URLLoader(url); loader.addEventListener(Event.COMPLETE, xmlLoaded); } private function xmlLoaded(event:Event):void { var xml:XML = new XML(event.target.data); for(var i = 0; i < xml.children().length(); ++i){ seconds[i] = xml.children()[i].attribute("time"); film[i] = xml.children()[i].attribute("label"); pas[i] = xml.children()[i].attribute("url"); } } } } в другом файле import xml_loader; var videoData = new xml_loader("playlist.xml"); trace(videoData.pas[0]); тут пишет undefined. Почему? Подскажите, плз |
|
|||||
|
Регистрация: Apr 2008
Сообщений: 17
|
Нужно дождаться загрузки хмл, и только после этого делать trace. А так хмл просто не успевает загрузится вот и получаем undefined.
|
|
|||||
|
Регистрация: Jan 2011
Сообщений: 8
|
Ну так в конструкторе класса это и зделано, по событию завершения загрузки, вызывается ф-я которая должна заполнить массивы. Не работает. Люди помогите)))
Добавлено через 6 минут Извините за название темы, не знаю как поменять |
![]() |
![]() |
Часовой пояс GMT +4, время: 00:06. |
|
|
« Предыдущая тема | Следующая тема » |
|
|