flash on 2010-3-1
import flash.display.Sprite;
/**
* Copyright bcosizm ( http://wonderfl.net/user/bcosizm )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/tCd1
*/
package {
import flash.events.*;
import org.papervision3d.view.*;
import org.papervision3d.materials.*;
import org.papervision3d.materials.utils.*;
import org.papervision3d.objects.primitives.*;
import flash.display.Loader;
import flash.net.URLLoader;
import flash.net.URLRequest;
//import flash.display.Sprite;
import flash.display.Bitmap;
import flash.display.BitmapData;
public class FlashTest extends BasicView {
//private var obj:Sphere;//球形インスタンス
private var obj:Cube;//直方体インスタンス
private var rotx:Number = 0;
private var roty:Number = 0;
public function FlashTest() {
// write as3 code here..
//マテリアル作成
var material:WireframeMaterial = new WireframeMaterial(0x0000FF);
//直方体
//マテリアルズリスト
var materials:MaterialsList = new MaterialsList({all:material});
obj = new Cube(materials,700,700,700,10,10,10);
//球形作成
//obj = new Sphere(material,400,50,15);
//3D空間に球体を追加
scene.addChild(obj);
//レンダリング開始
startRendering();
//エンターフレームのイベントを登録
addEventListener(Event.ENTER_FRAME,loop);
}
//アニメーション
private function loop(e:Event):void
{
//球体を回転させる
//obj.rotationY +=4;
//マウスのX座標がステージの幅の何%の位置にあるか調べてそれを360度で乗算する。
var targetRotX:Number = (mouseX/stage.stageWidth)*360;
var targetRotY:Number = (mouseY/stage.stageHeight)*360;
//イージングの公式を用いて滑らかにする。
//値 +=(目標値-現在値)*減速値
rotx += (targetRotX-rotx)*0.02;
roty += (targetRotY-roty)*0.02;
//角度に応じてカメラの位置を設定
//横方向
camera.x = 1000*Math.sin(rotx*Math.PI/180);
camera.z = 1000*Math.cos(rotx*Math.PI/180);
//縦方向
camera.y = 1000*Math.sin(roty*Math.PI/180);
//camera.x= 1000*Math.cos(roty*Math.PI/180);
}
}
}