package { import flash.display.*; import flash.events.*; import org.papervision3d.view.*; import org.papervision3d.materials.*; import org.papervision3d.objects.*; import org.papervision3d.objects.primitives.*; import org.papervision3d.materials.utils.MaterialsList; import org.papervision3d.cameras.*; import org.papervision3d.materials.special.CompositeMaterial; import caurina.transitions.Tweener; import caurina.transitions.properties.*; import flash.text.TextField; import flash.utils.*; public class Main extends BasicView { private var sphere:Sphere; private var cylinder:Cylinder; private var bitmapFileMaterial:BitmapFileMaterial; private var position_num:Number = 0; public function Main() { //super(1440, 720, true, true, CameraType.FREE); stage.scaleMode = StageScaleMode.NO_SCALE; stage.quality = StageQuality.LOW; init(); } public function init():void { // material var colorMaterial:ColorMaterial = new ColorMaterial( 0x666666, 0.3 ); var wireframeMaterial:WireframeMaterial = new WireframeMaterial( 0x339933, 1 ); var compositeMaterial:CompositeMaterial = new CompositeMaterial(); compositeMaterial.addMaterial(colorMaterial); compositeMaterial.addMaterial(wireframeMaterial); compositeMaterial.doubleSided = true; // cube //cube = new Cube(new MaterialsList({all:compositeMaterial}), 200, 200, 200, 5, 5, 5); cylinder = new Cylinder(compositeMaterial, 200, 200, 10, 10); scene.addChild(cylinder); // sphere sphere = new Sphere(new ColorMaterial(0xFF0000,1),5,10,10); scene.addChild(sphere); camera.x = 200; camera.y = 200 camera.z = 300; camera.focus = 350; camera.zoom = 1; addEventListener(Event.ENTER_FRAME, enterFrameHandler); startRendering(); // sphere を 頂点の座標で動かす moveSphare(); } private function moveSphare(){ if( position_num >= cylinder.geometry.vertices.length ) position_num = 0; text_1.text = cylinder.geometry.vertices.length.toString(); text_2.text = position_num.toString(); text_3.text = Math.round(cylinder.geometry.vertices[position_num].x).toString(); text_4.text = Math.round(cylinder.geometry.vertices[position_num].y).toString(); text_5.text = Math.round(cylinder.geometry.vertices[position_num].z).toString(); Tweener.addTween(sphere, { x:cylinder.geometry.vertices[position_num].x, y:cylinder.geometry.vertices[position_num].y, z:cylinder.geometry.vertices[position_num].z, time:0.2, delay:0.1, transition: "easeInOutQuart", onComplete: moveSphare }); position_num++; } private function enterFrameHandler(event:Event):void { } } }