forked from: フレームアクションで覚える Papervision3D サンプル Vol.01

by maxcaffy forked from フレームアクションで覚える Papervision3D サンプル Vol.01 (diff: 67)
♥0 | Line 37 | Modified 2010-05-18 11:11:29 | MIT License
play

ActionScript3 source code

/**
 * Copyright maxcaffy ( http://wonderfl.net/user/maxcaffy )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/rCOF
 */

// forked from clockmaker's フレームアクションで覚える Papervision3D サンプル Vol.01
// forked from clockmaker's WonderflでaddFrameScriptを試してみる
package {
	
	import flash.display.*; 
	import flash.events.*; 
	import flash.utils.*;
	import flash.net.*; 
	import flash.filters.*;
	import flash.text.*;
	import org.papervision3d.view.BasicView;
	import org.papervision3d.objects.primitives.*;
	
	public class FlashTest extends MovieClip {
		
		private var world:BasicView;
		private var sphere:Sphere; 
		
		public function FlashTest() {
			initFunc();
			initAdd();
		}
		
		public function initFunc():void {
			
			// 3D表示用の基本インスタンスを作成します
			world = new BasicView();
			addChild(world);

			// 球面のオブジェクトを作成します
			sphere = new Sphere();

			// 3D表示用のworldインスタンスのsceneプロパティーが3D表示空間となります
			// world.sceneに対して上で作成した球面を表示(addChild)します
			world.scene.addChild(sphere)

			// Papervision3Dでは空間をレンダリングさせることで初めて表示されます
			// worldインスタンスに対してstartRendering()させます
			world.startRendering()
		}
		
		private function initAdd():void{

			addEventListener(Event.ENTER_FRAME, loopFunc)
			stage.addEventListener(MouseEvent.MOUSE_UP,resetFunc);
			
			//つけたり外したりしない限りは最低限のスコープで書いた方がスマート?
			function loopFunc(e:Event):void{
	 		   sphere.rotationX += 2
	  		   sphere.rotationY += 2
	  		   sphere.rotationZ += 2
			}
			
			function resetFunc(event:MouseEvent):void{
				initFunc();
			}
		}
	}
}