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

flash on 2009-9-26

Get Adobe Flash player
by andrew_croce 28 Sep 2009
    Embed
/**
 * Copyright andrew_croce ( http://wonderfl.net/user/andrew_croce )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/aEdl
 */

package {
    import flash.display.*;
    import flash.events.Event;
    import flash.events.MouseEvent;
    
    public class FlashTest extends Sprite {
        public var center:Object = {x:stage.stageWidth/2,y:stage.stageHeight/2,z:distance};
        public var distance:Number = 350;
        public var numNodes:Number = 6;
        public var nodeRadius:Number = 8;
        public var centerRadius:Number = 12;
        public var color:uint = 0x998877;
        public var xRange:Number = 200;
        public var yRange:Number = 100;
        public var zRange:Number = 200;
        public var rotationFactor:Number = .05;
        public var xRotation:Number = 0;
        public var yRotation:Number = 0;
        public var nodes:Array;
        public var container:Sprite = new Sprite();
        
        public function FlashTest() {
            // write as3 code here..
            
            drawCenterNode();
            nodes = new Array();
            container.x = center.x;
            container.y = center.y;
            this.stage.addChild(container);
            initNodes();
            this.stage.addEventListener(MouseEvent.MOUSE_DOWN,_onMouseDown);
            this.stage.addEventListener(MouseEvent.MOUSE_UP,_onMouseUp);
        }
        public function drawCenterNode():void
        {
            var centerNode:Sprite = new Sprite();
                centerNode.graphics.beginFill(color,1);
                centerNode.graphics.drawCircle(0,0,centerRadius);
                centerNode.graphics.endFill();
                centerNode.x = 0;
                centerNode.y = 0;
                centerNode.z = center.z;
           container.addChild(centerNode);
        }
        public function initNodes():void
        {
            for (var i:int = 0; i < numNodes; i++)
            {
                nodes.push(make3DPoint());
            }
            drawNodes(nodes);
        }
        private function _update(e:Event):void
        {
            yRotation = (center.x - this.stage.mouseX) * rotationFactor;
            //yRotation++
            var newNodes:Array = transformNodes(nodes, yRotation);
            drawNodes(newNodes);
        }
        public function make3DPoint():Object
        {
            var point:Object = new Object();
                point.x = center.x + (Math.random()*xRange - xRange/2);
                point.y = center.y + (Math.random()*yRange - yRange/2);
                point.z = center.z + (Math.random()*zRange - zRange/2);
            return point;
        }
        public function transformNodes(nodes:Array, yAngle:Number):Array
        {
            var newNodes:Array = new Array();
            var cy:Number = Math.cos(yAngle);
            var sy:Number = Math.sin(yAngle);
            for (var i:int = 0; i < numNodes; i++)
            {
                var newNode:Object = new Object();
                var x:Number = nodes[i].x;
                var y:Number = nodes[i].y;
                var z:Number = nodes[i].z;
                var yx:Number = cy*y - sy*z;
                var yz:Number = cy*z - sy*x;
                newNode.x = yx;
                newNode.y = y;
                newNode.z = yz;
                newNodes.push(newNode);
            }
            return newNodes;
        }
        public function drawNodes(nodes:Array):void
        {   
            container.graphics.clear();
            for (var i:int = 0; i < numNodes; i++)
            {
                var node:Sprite = new Sprite();
                    node.graphics.beginFill(color,1);
                    node.graphics.drawCircle(0,0,nodeRadius);
                    node.graphics.endFill();
                    node.x = nodes[i].x;
                    node.y = nodes[i].y;
                    node.z = nodes[i].z;
                container.addChild(node);
            }
        }
        private function _onMouseDown(e:MouseEvent):void
        {
            this.stage.addEventListener(Event.ENTER_FRAME,_update);
        }
        private function _onMouseUp(e:MouseEvent):void
        {
            this.stage.removeEventListener(Event.ENTER_FRAME,_update);
        }
    }
}