Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 16.03.2009, 11:37
RetKiller вне форума Посмотреть профиль Отправить личное сообщение для RetKiller Найти все сообщения от RetKiller
  № 1  
Ответить с цитированием
RetKiller

Регистрация: Dec 2007
Сообщений: 58
Отправить сообщение для RetKiller с помощью ICQ
По умолчанию Papervision,3DSMax и XML

Утро доброе,товарищи
Собственно,занялся я импортом 3D-моделей из Max во Flash,использую Papervision.

Так как модельки нужно загружать динамически,они экспортруются из Max в XML скриптиком,которым кто-то поделился Суть не в этом.

Система работает примерно так:сначала загружается xml со списком всех уровней (этажей) здания и текстурками к ним. Выглядит примерно вот так:
Код AS3:
<?xml version="1.0" encoding="utf-8"?>
<levels>
<level id="1" path="three_inside.xml" texture="firstlevel.png" />
level id="2" path="secondlevel.xml" texture="secondlevel.png" />
</levels>
Потом мне надо создать все модели из этого списка и натянуть текстурки. Для моделей написан спец.класс вот такого вида:
Код AS3:
public class IVModel extends TriangleMesh3D
	{
		public var verts :Array;
		public var faceAr:Array;
		public var uv :Array;
 
		public function IVModel(id:String, strModel:String,strTexture:String )
		{
			var urlModel:String = strModel;
			var request:URLRequest=new URLRequest(urlModel); 
			var initModelLoader:URLLoader=new URLLoader(request); 
			initModelLoader.addEventListener(Event.COMPLETE,createPlan);
 
 
 
			super(null, new Array(), new Array(), null);
}
private function createPlan(event:Event):void
		{
			//trace(event.currentTarget.data);
			if (event.currentTarget.data)
				{
				var xmlModel:XML=new XML(event.currentTarget.data);
				verts = this.geometry.vertices;
			faceAr= this.geometry.faces;
			uv = new Array();
			/******************************/			
			var vsplit:Array=xmlModel.primData[1].vertex.split(',');
			var fsplit:Array=xmlModel.primData[1].faces.split(',');
			var usplit:Array=xmlModel.primData[1].uvData.split(',');
			var j:int;
 
			for (j=0; j<(vsplit.length-1)/3; j++) 
			{
				v(vsplit[j*3],vsplit[j*3+1],vsplit[j*3+2]);
			}
 
			var k:int;
			for (k=0;k<(usplit.length-1)/2; k++) 
			{
				uv.push(new NumberUV(usplit[2*k], usplit[2*k+1]));
			}
 
 
			var n:int;
			for (n=0;n<(fsplit.length-1)/6; n++) 
			{
				f(fsplit[n*6], fsplit[n*6+1], fsplit[n*6+2], fsplit[n*6+3], fsplit[n*6+4], fsplit[n*6+5]);
			}
 
			}
			this.geometry.ready = true;
 
			var evt:ModelCreationCompleteEvent=new ModelCreationCompleteEvent(ModelCreationCompleteEvent.MODEL_CREATION_COMPLETE);
			if (dispatchEvent(evt))
				trace("Sended!");
			var evt2:Event=new Event(Event.ACTIVATE);
 
			dispatchEvent(evt2);
			trace (evt);
			trace("End of constructor");
		}	
	}
И тут вот как раз возникают проблемы. Мне требуется сообщить сцене,что объект загружен и его нужно отрендерить. Понятное дело,что для этого можно и нужно слать сообщение,которое будет перехватываться либо сценой,либо кем-то еще наверху. Шлю. Не идет. В чем проблема?

Может кто чего подскажет?Заранее спасибо

Добавлено через 54 часа 4 минуты
Другим путем решил,проблема уже неактуальна.

Создать новую тему Ответ Часовой пояс GMT +4, время: 04:50.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 04:50.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.