Показать сообщение отдельно
Старый 20.07.2011, 16:35
Kidd002 вне форума Посмотреть профиль Отправить личное сообщение для Kidd002 Посетить домашнюю страницу Kidd002 Найти все сообщения от Kidd002
  № 4  
Ответить с цитированием
Kidd002

Регистрация: Apr 2004
Адрес: Россия, Москва
Сообщений: 60
Отправить сообщение для Kidd002 с помощью ICQ
Тогда использовать события не нужно - у тебя нет загрузки и, соответственно, нет задержки.
Сразу передаем в функцию parse xml-ку и сразу берем ответ.
Парсер:
Код AS3:
package
{
 
	public class xmlpars
	{
		private var _xml:XML;
		public var objlist:Array;
		public var camlist:Array;
 
		public function xmlpars()
		{
 
		}
 
		public function parseXML(xml:XML):void
		{
			_xml = xml;
			var objects:XMLList = _xml["objects"].child("object");
			parseMyObj(objects);
			var cameras:XMLList = _xml["cameras"].child("camera");
			parseMyCam(cameras);
		}
 
		private function parseMyObj(obj:XMLList):void
		{
			var texturearr:Array = new Array();
			var textureobjarr:Array = new Array();
			var objtext:Array = new Array();
			for (var i:Number = 0; i < obj.length(); i++)
			{
				var object:Object = obj[i];
				for (var q:Number = 0; q < object.textures.texture.length(); q++)
				{
					var t:Object = object.textures.texture[q];
					texturearr.push(t.texturesrc);
 
					textureobjarr.push(t.textureobj);
					objtext.push(t.text);
				}
				var s:objItem = new objItem(object.name, object.model, texturearr, textureobjarr, object.@x, object.@y, object.@z, objtext);
				objlist.push(s);
			}
		}
 
		private function parseMyCam(obj:XMLList):void
		{
			for (var i:Number = 0; i < obj.length(); i++)
			{
				var object:Object = obj[i];
				var s:camItem = new camItem(object.name, object.@farClipping, object.@nearClipping, object.@posx, object.@posy, object.@posz, object.@lookx, object.@looky, object.@lookz);
				camlist.push(s);
			}
		}
 
	}
}
Использование:
Код AS3:
pars:xmlparser=new xmlparser();
 
//Получаем содержимое прикрепленной xml-ки
var file:ByteArray = (new EmbedModel()) as ByteArray);
var str:String = file.readUTFBytes( file.length );
var xml:XML = new XML( str );
 
//Парсим:
pars.parseXML(xml);
 
//Берем данные из pars и:
 
//тут производится создание объектов MyObject с помощью данных из массива объектов 
//и добавляются на сцену
 
//Тоже самое с камерой
addEventListner(.....,onenterframe);