forked from: forked from: forked from: forked from: forked from: How to fix my FIVe3D code?

by s8t1h12akj forked from forked from: forked from: forked from: forked from: How to fix my FIVe3D code? (diff: 1)
♥0 | Line 70 | Modified 2014-01-30 22:07:51 | MIT License
play

ActionScript3 source code

/**
 * Copyright s8t1h12akj ( http://wonderfl.net/user/s8t1h12akj )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/uBdu
 */

// forked from s8t1h12akj's forked from: forked from: forked from: forked from: How to fix my FIVe3D code?
// forked from hacker_9p8x8mco's forked from: forked from: forked from: How to fix my FIVe3D code?
// forked from uwi's forked from: forked from: How to fix my FIVe3D code?
// forked from JohnBrookes's forked from: How to fix my FIVe3D code?
// forked from makc3d's How to fix my FIVe3D code?
// This code worked in FIVe3D 2.1
// What's wrong now?
// :p
package {

    import flash.display.StageScaleMode;
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.events.MouseEvent;
    
    // We import the FIVe3D classes needed.
    import flash.display.DisplayObject;
    import flash.display.StageScaleMode;
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.events.MouseEvent;
    import net.badimon.five3D.display.DynamicText3D;
    import net.badimon.five3D.display.Scene3D;
    import net.badimon.five3D.display.Sprite3D;
    import net.badimon.five3D.typography.HelveticaBold;

    public class Main extends Sprite {

        private var cubes:Sprite3D;

        public function Main() {
            
            // We define the Stage scale mode.
            stage.scaleMode = StageScaleMode.NO_SCALE;
            
            // We create a new Scene3D named "scene", center it and add it to the display list.
            var scene:Scene3D = new Scene3D();
            scene.x = 300;
            scene.y = 200;
            addChild(scene);
            
            // We create a new Sprite3D and turn children sorting on.
            cubes = new Sprite3D ();
            cubes.childrenSorted = true;

            for (var i:int = 0; i < 20; i++) {
                var cube:DisplayObject = makeCube (30, i);
                cube.rotationX = Math.random()*100-50;
                cube.rotationY = Math.random()*100-50;
                cube.rotationZ = Math.random()*100-50;
                cube.x = Math.random()*400-200;
                cube.y = Math.random()*400-200;
                cube.z = Math.random()*400-200;

                cube.addEventListener (Event.ENTER_FRAME, cubeSpinner);
                cubes.addChild (cube);
            }

            cubes.addEventListener (Event.ENTER_FRAME, cubeSpinner);
            scene.addChild(cubes);
        }


        private function cubeSpinner(event:Event):void {
            event.target.rotationX += 2;
            event.target.rotationY += 2;
        }
        
        private function makeCube (S:Number, j:int):Sprite3D {
            var cube:Sprite3D = new Sprite3D ();
            cube.childrenSorted = true;
            for (var i:int = 0; i < 6; i++)
                cube.addChild (makeCubeSide (i, S, j));
            return cube;
        }
        
        private function makeCubeSide (i:int, S:Number, j:int):Sprite3D {
            var T:Array = ["F", "I", "V", "E", "3", "D"];
            var X:Array = [+1,  0, -1,  0,  0,  0];
            var Y:Array = [ 0,  0,  0,  0, +1, -1];
            var Z:Array = [ 0, +1,  0, -1,  0,  0];
            var side:Sprite3D = new Sprite3D();
            side.graphics3D.beginFill(10*i + 50 + j*2560, 1);
            side.graphics3D.drawRect(-S, -S, 2*S, 2*S);
            side.graphics3D.endFill();
            var world:DynamicText3D = new DynamicText3D(HelveticaBold.instance);
            //world.typography = five3D.typography.HelveticaBold;
            world.size = S;
            world.color = 0x800000 + 0x100000 * (i+1);
            world.text = T [i];
            side.addChild(world);
            side.x = S * X [i]; side.rotationY = -90 * X [i];
            side.y = S * Y [i]; side.rotationX = +90 * Y [i];
            side.z = S * Z [i]; side.rotationZ = +90 * Z [i];
            return side;
        }

    }

}