In case Flash no longer exists; a copy of this site is included in the Flashpoint archive's "ultimate" collection.

Dead Code Preservation :: Archived AS3 works from wonderfl.net

Alternativa3D 7 地球を回す

色々なコードをツギハギして、やっと地球を作って回せた。。。
う・うれしい・・・

課題はまだまだたくさんあるけど、うれしい
Get Adobe Flash player
by roconico 23 Oct 2012
    Embed
/**
 * Copyright roconico ( http://wonderfl.net/user/roconico )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/1dRB
 */

package {
    import flash.display.*;
    import flash.events.*;
    import flash.net.*;
    import flash.system.*;
    import alternativ7.engine3d.containers.*;
    import alternativ7.engine3d.core.*;
    import alternativ7.engine3d.materials.*;
    import alternativ7.engine3d.primitives.*;
    
    [SWF(backgroundColor="#000000", frameRate="60", width="465", height="465")]
    public class DemoForWonderfl extends Sprite {
        private static const CELL_NUM:uint = 1;
        
        public function DemoForWonderfl() {
            // swf init
            stage.scaleMode = StageScaleMode.NO_SCALE;
            stage.align = StageAlign.TOP_LEFT;
            stage.quality = StageQuality.LOW;
            // load
            var loader:Loader = new Loader();
            loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
            //画像暗い方 ↓
            //var url:String = "http://assets.wonderfl.net/images/related_images/a/a5/a537/a5375cef73c462abc59ea9820de114f3f6d18b50";
            //画像明るい方 ↓
            var url:String = "http://assets.wonderfl.net/images/related_images/3/3a/3a0f/3a0f77d6f7299a76cea0602132210dcfd48560c0";
            loader.load(new URLRequest(url), new LoaderContext(true));
        }
        private var camera:Camera3D;
        private var container:DistanceSortContainer;
        private var boxes:Array = [];
        private var wrap:DistanceSortContainer;
        
        private function completeHandler(e:Event):void {
            // Camera
            camera = new Camera3D();
            camera.view = new View(465, 465);
            addChild(camera.view);

            //camera.x = 0;
            camera.x = 0;
            camera.y = 800;
            camera.z = 0;
            
         
            camera.fov = 45;
            
            camera.rotationX = -90 * Math.PI / 180;
            camera.rotationZ = 180 * Math.PI / 180;

            
            // Root object
            container = new DistanceSortContainer();
            container.sortByZ = true;
            wrap = new DistanceSortContainer();
            wrap.sortByZ = true;
            container.addChild(wrap);
            
            // 画像をマテリアルとして貼り付ける
            var material:TextureMaterial = new TextureMaterial();
            material.texture = e.target.content.bitmapData;
            material.mipMapping = MipMapping.NONE;
            material.repeat = false;
            material.smooth = false;
            
            var mat2:VertexLightMaterial = new VertexLightMaterial();
            mat2.texture = e.target.content.bitmapData;
            mat2.mipMapping = MipMapping.NONE;
            mat2.repeat = false;
            mat2.smooth = false;
            
            // 元BOX ;
            var box:Box = new Box(140, 140, 140, 1, 1, 1);
                        box.setMaterialToAllFaces(material);
                        box.sorting = Sorting.NONE;
                        //box.x = 100;
                        //box.y = 100;
                        //box.z = 100;
                        //wrap.addChild(box);
                      
            // 球 ;
            var cle:Sphere = new Sphere(260,50,50,false); 
                     cle.setMaterialToAllFaces(material);
                      //cle.setMaterialToAllFaces(mat2);
                    wrap.addChild(cle);
                    
                        

            // Adding
            container.addChild(camera);
            // Debug
            addChild(camera.diagram);
            addEventListener(Event.ENTER_FRAME, enterFrameHandler);
            //stage.addEventListener(Event.RESIZE, resizeHandler);
            resizeHandler();
        }
        
        private function enterFrameHandler(e:Event = null):void {
            /*
            for (var i:int = 0; i < boxes.length; i++) {
                boxes[ i ].rotationX += 1 * Math.PI / 180;
                boxes[ i ].rotationY += 1 * Math.PI / 180;
            }
            */
            //wrap.rotationX += 1 * Math.PI / 180;
            //wrap.rotationY += 1 * Math.PI / 180;
            wrap.rotationZ += 0.1 * Math.PI / 180;
            camera.render();
        }
        
        private function resizeHandler(e:Event = null):void {
            camera.view.width = stage.stageWidth;
            camera.view.height = stage.stageHeight;
            graphics.clear();
            graphics.beginFill(0x0);
            graphics.drawRect(0,0,stage.stageWidth, stage.stageHeight);
        }
    }
}