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-24

Get Adobe Flash player
by andrew_croce 25 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/cgwi
 */

package {
    import flash.display.*;
    import flash.events.*
    public class FlashTest extends Sprite {
        
        public var center:Object = {x:stage.stageWidth/2,y:stage.stageHeight/2,z:100};
        public var centerNode:Sprite = new Sprite;
        public var nodes:Array;
        public var focalLength:Number = 150;
        public var rotFactor:Number = 1;
        public var centerRadius:Number = 15;
        public var nodeRadius:Number = 6;
        public var xRange:Number = 400;
        public var yRange:Number = 100;
        public var zRange:Number = 800;
        public var numNodes:Number = 10;
        public var grey:uint = 0x999999;
        
        public function FlashTest() {
            // write as3 code here..
            
            this.stage.addChild(makeCenterNode());
            nodes = new Array();
            nodes = make3DPoints();
            makeNodes(nodes);
            this.stage.addEventListener(MouseEvent.MOUSE_DOWN,_onMouseDown);
            this.stage.addEventListener(MouseEvent.MOUSE_UP,_onMouseUp);
              
        }
        private function _update(e:Event):void
        {
                 makeNodes(rotateNodes(nodes));
        }
        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);   
        }
        public function makeCenterNode():Sprite
        {
            var node:Sprite = new Sprite();
                node.graphics.beginFill(grey,1);
                node.graphics.drawCircle(0,0,centerRadius);
                node.graphics.endFill();
                node.x = center.x;
                node.y = center.y;
                node.z = center.z;
            return(node);
        }      
        public function make3DPoints():Array
        {
            var points:Array = new Array();
            
            for (var i:int = 0; i < numNodes; i++) 
            {
                var point:Object = new Object();
                    point.x = center.x + xRange * Math.random() - xRange/2;
                    point.y = center.y + yRange * Math.random() - yRange/2;
                    point.z = center.z + zRange * Math.random() - zRange/2;
                points[i] = point;
            }   
            return(points);
        }
        public function makeNodes(nodes:Array):void
        {
            for (var i:int = 0; i < numNodes; i++)
            {
                var node:Sprite = new Sprite();
                    node.graphics.beginFill(grey,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;
                this.stage.addChild(node);
                node.addEventListener(MouseEvent.MOUSE_OVER,_onMouseOver);
                    
            }
        }
        public function rotateNodes(nodes:Array):Array
        {
            var newNodes:Array = new Array();
            for (var i:int = 0; i < numNodes; i++)
            {
                var xAngle:Number = mouseX - center.x;
            
                var sx:Number = Math.sin(xAngle);
                var cx:Number = Math.cos(xAngle);

                var x:Number = nodes[i].x;
                var y:Number = nodes[i].y;
                var z:Number = nodes[i].z;
                var yx:Number = (cx*x)+(sx*z);
                var yz:Number = (cx*z)-(sx*x);
                
                newNodes[i].x = yx;
                newNodes[i].z = yz; 
            }
            return(newNodes);
        }
        private function _onMouseOver(e:MouseEvent):void
        {
               e.target
        }
    }
}