ホーム > Papervision3d > Papervision3d はじめの四歩 マウスイベント

Papervision3d はじめの四歩 マウスイベント

2009 年 5 月 16 日 コメントをどうぞ コメント
クリックすると拡大するのを作成してみた。



  • コツはBasicViewとかのView系?のものが存在するのかわからないけど、そのinteractiveプロパティと
    Material系のinteractiveプロパティをtrueにしてやるとマウスイベントを受け取る下準備ができる。
  • 次に、InteractiveScene3DEventでaddEventListenerできるようになる!
    BasicViewの場合は、第4引数をtrueにしてやることでinteractiveプロパティをtrueにする。

bmm.interactive = true;
var basicview:BasicView = new BasicView(640, 480, true, true);
_plane.addEventListener(InteractiveScene3DEvent.OBJECT_CLICK, clickHandler);



package myproject
{
	import flash.display.Bitmap;
	import flash.display.BitmapData;
	import flash.display.InteractiveObject;
	import flash.display.Loader;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.net.URLRequest;
	import org.papervision3d.materials.BitmapMaterial;
	import org.papervision3d.objects.primitives.Plane;
	import org.papervision3d.view.BasicView;
	import org.papervision3d.events.InteractiveScene3DEvent;
 
    public class Index extends Sprite
    {
		private var _plane:Plane
        public function Index():void 
        {
 
			var loader:Loader = new Loader();
			var urlReq:URLRequest  = new URLRequest("http://blog.yaimo.net/wordpress/wp-content/uploads/2009/05/ramen1.jpg");
 
			if (stage != null) {
				loader.load(urlReq);
				loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
			}
        }
 
		private function completeHandler(e:Event):void 
		{
			e.target.removeEventListener(Event.COMPLETE, completeHandler);
			this.addChild(e.target.loader);
			var bmp:BitmapData = new BitmapData(100, 100);
			bmp.draw(e.target.loader);
			var bm:Bitmap = new Bitmap(bmp);
			bm.x = 100;
			bm.y = 100;
			addChild(bm);
			var bmm:BitmapMaterial = new BitmapMaterial(bmp);
			bmm.doubleSided = true;
			bmm.smooth = true;
			bmm.interactive = true;
			_plane = new Plane(bmm, 100, 100, 3, 3);
			var basicview:BasicView = new BasicView(640, 480, true, true);
			basicview.scene.addChild(_plane);
			basicview.startRendering();
			addEventListener(Event.ENTER_FRAME, enterFrameHandler);
			addChild(basicview);
 
			_plane.addEventListener(InteractiveScene3DEvent.OBJECT_CLICK, clickHandler);
 
		}
 
		private function clickHandler(e:InteractiveScene3DEvent):void 
		{
			_plane.scale += 0.2;
		}
 
		private function enterFrameHandler(e:Event):void 
		{
			_plane.rotationX += 2;
		}
    }
}





Bookmark and Share

関連する投稿