+// forked from hiro_loveness's forked from: forked from: PerspectiveProjectionTest // forked from hiro_loveness's forked from: PerspectiveProjectionTest // forked from ukkr's PerspectiveProjectionTest package { import flash.display.Sprite; import flash.events.Event; import flash.geom.PerspectiveProjection; import flash.geom.Point; public class PerspectiveProjectionTest extends Sprite { private var _pro:PerspectiveProjection; // PerspectiveProjetionクラス private var _centerPoint:Point = new Point(0,0); //消失点用のPointクラス private var _panelNum:int =12; //プレートの数 private var _panelSize:int = 100; //プレートのサイズ private var _ang:int = 90; //プレート角度 public function PerspectiveProjectionTest() { //基本的な宣言らしい _pro = root.transform.perspectiveProjection; //視野角 _pro.fieldOfView = 170; //視点からオブジェクトまでの距離 _pro.focalLength =200 initStage(); } private function initStage():void { for ( var i:int = 0; i < _panelNum; i++ ) { var sp:Sprite = new Sprite(); var g:Graphics = sp.graphics; g.beginFill( 0x000000, 0.8 ); g.drawRect( -_panelSize / 2, -_panelSize / 2, _panelSize, _panelSize ); g.endFill(); sp.x = Math.round( stage.stageWidth / _panelNum * i ); sp.y = stage.stageHeight / 1.5; sp.z = -stage.stageHeight / 6; sp.rotationY = _ang; addChild( sp ); } addEventListener( Event.ENTER_FRAME, enterFrameHandler ); } private function enterFrameHandler( e:Event ):void { _centerPoint.x = (mouseX-_centerPoint.x)*0.2; _centerPoint.y = (mouseY-_centerPoint.y)*0.2; _pro.projectionCenter = _centerPoint; } } } forked from: forked from: forked from: PerspectiveProjectionTest