Не видит переменную

То что касается флеша, но не касается ВКонтакте API. Например проблемы при создании прыгающего мячика.
Ответить
scarm
Сообщения: 7
Зарегистрирован: 18 фев 2010, 12:40

Не видит переменную

Сообщение scarm »

Подскажите нубу люди добрые. Обрисую в двух словах ситуацию. Есть проект Adobe Flash CS4 10, состоящий из пакета main и двух вложенных в него классов MainClass и XmlParser
По идее надо в начале программы загрузить внешний xml файл, чтобы в дальнейшем его распарсить на запчасти. Использовал метод подгрузки xml файлов из
туториала фирмы адоб по actionscript 3.0 (чтение внешних xml документов), вставил лоадер в класс XmlParser. Привожу коды того, что имею сейчас:
Файл main/MainClass.as

Код: Выделить всё

package main{
import flash.display.*
	public class MainClass extends MovieClip{
			public function MainClass(){
	
			var c = new XmlParser();	
		}
	}
}
Файл main/XmlParser.as

Код: Выделить всё

package main{
import flash.display.*
import flash.events.*
import flash.net.*
	public class XmlParser{
		var server:String = "http://someserver.com/";

public	function XmlParser(){

var myXML:XML = new XML(); 
var XML_URL:String = server+"book_list.xml"; 
var myXMLURL:URLRequest = new URLRequest(XML_URL); 
var myLoader:URLLoader = new URLLoader(myXMLURL); 
myLoader.addEventListener("complete", xmlLoaded); 
 
function xmlLoaded(event:Event)
{ 
    myXML = XML(myLoader.data); 
    trace("Data loaded. Here's your date:" + myXML); 
}
		
		}
	}
}
Файл Project.fla находится в корневой директории и в свойствах сцены приписан к main. MainClass

Собственно, проблема в том, что переменная myXML видима только внутри функции xmlLoaded
Если я вызову trace(XML) внутри функции XmlParser или MovieClip, то выдается только пустая строка.
Где я налажал? Как увидеть содержимое xml файла вне xmlLoaded?
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: Не видит переменную

Сообщение Александр »

Ты создаёшь переменную в функции XmlParser

Код: Выделить всё

var myXML:XML = new XML();
Созданная переменная в этой функции пустая. Делай переменную глобальной.
Ответить