Показать сообщение отдельно
Старый 18.01.2009, 21:13
myocean вне форума Посмотреть профиль Отправить личное сообщение для myocean Найти все сообщения от myocean
  № 5  
Ответить с цитированием
myocean

Регистрация: Jan 2009
Адрес: MO
Сообщений: 32
Спасибо Obi, но так не работает, проблема так понимаю в
object.addEventListener...

Как его определить,
как вытащить из colladы
(интерактив материалы выставил)

Добавлено через 7 минут
вот весть код

Код AS3:
package
{
	import flash.display.Sprite;
	import flash.events.Event;
 
	import org.papervision3d.view.Viewport3D;
	import org.papervision3d.scenes.Scene3D;
	import org.papervision3d.cameras.Camera3D;
	import org.papervision3d.materials.BitmapAssetMaterial;
	import org.papervision3d.materials.utils.MaterialsList;
	import org.papervision3d.objects.parsers.Collada;
	import org.papervision3d.render.BasicRenderEngine;
	import org.papervision3d.events.InteractiveScene3DEvent; 
	import org.papervision3d.objects.primitives.Plane;
	import org.papervision3d.objects.DisplayObject3D;
	import org.papervision3d.materials.ColorMaterial;
 
    import org.papervision3d.typography.Text3D;
	public class PV3D extends Sprite
	{
		private var viewport:			Viewport3D;
		private var scene:				Scene3D;
		private var camera:				Camera3D;
		private var collada:			Collada;
		private var plane:			    Plane;
		private var mesh:               DisplayObject3D;
		private var mesh2:              DisplayObject3D;
		private var materialSpace:      ColorMaterial;
		private var renderer:			BasicRenderEngine;
		private var mCube:			    BitmapAssetMaterial;
 
 
 
		public function PV3D():void
		{
			viewport = new Viewport3D(600, 600, false, true);
			addChild(viewport);
 
			scene = new Scene3D();
 
			camera = new Camera3D();
 
 
			materialSpace = new ColorMaterial( 0xFFFFFF, 1 );
			materialSpace.interactive = true;  
			plane = new Plane( materialSpace, 800, 800, 10, 10 );
			plane.rotationX = 90;
			plane.y =- 125;
			scene.addChild(plane);
 
 
 
			renderer = new BasicRenderEngine();
 
 
			mCube =new BitmapAssetMaterial( "cube.jpg", 0.1 );
			mCube.interactive = true;  
 
 
 
			var materialsList:MaterialsList = new MaterialsList(); 
			materialsList.addMaterial( mCube, "mCube" ); 
			collada = new Collada("modelcube.dae", materialsList, .2);
			scene.addChild(collada);
			camera.target = collada;
 
 
			addEventListener(Event.ENTER_FRAME, onEnterFrame);
			plane.addEventListener(InteractiveScene3DEvent.OBJECT_CLICK, onPress);
			collada.addEventListener(InteractiveScene3DEvent.OBJECT_CLICK, onObjectClick);
 
 
 
			function onEnterFrame(e:Event):void
			{
				var xDist:Number = mouseX - stage.stageWidth * 0.5;
				var yDist:Number = mouseY - stage.stageHeight * 0.5;
 
				camera.x -= (camera.x - Math.sin(mouseX*0.01)*1000) /8;
				camera.z -= 100+(camera.z - Math.cos(mouseX*0.01)*1000) /8;
				camera.y -= (camera.y - viewport.containerSprite.mouseY * 5) /8;
 
				renderer.renderScene(scene, camera, viewport);
			}
			function onObjectClick(event:InteractiveScene3DEvent):void {
 					trace('click2!');
			}
 
			function onPress(e:InteractiveScene3DEvent):void 
			{ 
			trace("click");
			txt.x = 100;
 
			}
 
		}
	}
}


Последний раз редактировалось iNils; 18.01.2009 в 21:42.