Показать сообщение отдельно
Старый 07.07.2010, 17:25
Tr1te вне форума Посмотреть профиль Отправить личное сообщение для Tr1te Найти все сообщения от Tr1te
  № 15  
Ответить с цитированием
Tr1te
 
Аватар для Tr1te

Регистрация: Jun 2009
Сообщений: 461
Сделал пример с комментариями:

Главный класс:
Код AS3:
package Scr{
 
	import flash.display.*;
	import flash.events.*;
 
	public class E_Stage extends MovieClip {
		//---------------------------------------------------------------------------
 
		//--------------------------------------------------------------------------- Var
		public var XL:XMLLoader;//Создаю переменную для лоудера.
		//---------------------------------------------------------------------------
 
		//--------------------------------------------------------------------------- XL_Stage
		public function E_Stage():void {
			addEventListener("XMLFile_Loaded",TraceLoadedXML);// создаю слушателя которые
																												//ждет когда лоудер скажет что загрузил файл.
			XL=new XMLLoader();//Создаю инстанс лоудера.
			addChild(XL);//Добавляю мой инстанс лоудера на сцену, чтобы работать со свойствами/методами лоудера.
		}
		//---------------------------------------------------------------------------
 
		//--------------------------------------------------------------------------- TraceLoadedXML
		private function TraceLoadedXML(e:Event):void {// Дождался когда лоудер загрузил файл сообщил это мне, и...
			var LoadedXML:XML=XL.XMLFile;//вытаскиваю из лоудера то что он сохранил в отдельный файл.
			trace(LoadedXML);//Трейсю файл уже от сюда, и лоудер мне больше не нужен, могу делать с ним что захочу.
 
			removeChild(XL);//Убиваю инстанс лоудера, если тебе нужно часто чтото загружать, то лучше 
			XL=null;//его не убивать, а использовать повторно.
		}
 
		//---------------------------------------------------------------------------
 
		//---------------------------------------------------------------------------
	}//class
}//package
И класс лоудера:
Код AS3:
package Scr{
	//---------------------------------------------------------------------------
 
	//--------------------------------------------------------------------------- 
	import flash.display.*;
	import flash.events.*;
	import flash.net.*;
	//---------------------------------------------------------------------------
 
	//--------------------------------------------------------------------------- 
	public class XMLLoader extends Sprite {
		//---------------------------------------------------------------------------
 
		//--------------------------------------------------------------------------- Vars
		public var XMLFile:XML=new XML(); //Эта переменная в которую я сохраню то что загрузил.
		//---------------------------------------------------------------------------
 
		//--------------------------------------------------------------------------- XMLLoader
		public function XMLLoader():void {
			var URL_Path:String="crossdomain.xml";
 
			var FileLoader:URLLoader=new URLLoader(new URLRequest(URL_Path));//Все что выше и так понятно, ты это делал.
			FileLoader.addEventListener(Event.COMPLETE,FileLoader_Complete); //Тут слушаю завершение загрузки.
 
			function FileLoader_Complete(e:Event):void {
				FileLoader.removeEventListener(Event.COMPLETE,FileLoader_Complete); //Убиваю ненужный слушатель.
				XMLFile=XML(e.currentTarget.data);// Сохраняю в ранее созданную переменную то что загрузил.
				parent.dispatchEvent(new Event("XMLFile_Loaded")); //Сообщаю родителю, что я загрузил файл, можешь забирать.
				//Родителем может быть кто угодно.
			}
 
		}
		//---------------------------------------------------------------------------
 
		//--------------------------------------------------------------------------- 
	}//class
}//package
Полный вариант:
Вложения
Тип файла: rar XMLLoader_Example.rar (19.3 Кб, 35 просмотров)