package { import as3d.camera.Camera3D; import as3d.display.*; import as3d.display.primitive.*; import as3d.geom.*; import flash.display.*; import flash.events.*; import mx.core.BitmapAsset; [SWF(width=300, height=300, backgroundColor=0x000000, frameRate=30)] public class Sample01 extends Sprite { [Embed(source="images/texture01.gif")] private var Texture:Class; public function Sample01():void { var viewPort:ViewPort3D = new ViewPort3D(0, 0, stage.stageWidth, stage.stageHeight); var scene:Scene3D = Scene3D(addChild(new Scene3D(viewPort))); scene.startRendering(); var plane:Plane = Plane(scene.addChild3D(new Plane())); var cone:Cone = Cone(scene.addChild3D(new Cone(100, 50))); cone.shadingType = ShadingType.FLAT; var torus:Torus = Torus(scene.addChild3D(new Torus(20, 40))); torus.shadingType = ShadingType.GOURAUD; torus.texture = BitmapAsset(new Texture()).bitmapData; var camera:Camera3D = scene.camera; camera.lookAt = torus.position; var dld:Vector3D = scene.directionalLight.direction; var angle:Number = 0; addEventListener(Event.ENTER_FRAME, function ():void { torus.rotationX += 2; torus.rotationZ += 4; torus.x = Math.cos(angle ) * 200; torus.y = Math.sin(angle / 2) * 100 + 150; torus.z = Math.sin(angle ) * 100; camera.x = Math.cos(-angle / 2) * 400; camera.y = Math.sin(-angle / 4) * 200 + 300; camera.z = Math.sin(-angle / 2) * 200; dld.x = Math.cos(angle); dld.z = Math.sin(angle); angle += 0.05; }); } } }