flash on 2014-11-27

by hemingway
♥0 | Line 65 | Modified 2014-11-27 05:14:18 | MIT License
play

ActionScript3 source code

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

package {
    import flash.display.Sprite;
    import flash.display.Bitmap;
    import flash.display.BitmapData;
    import flash.events.Event;
    import flash.events.MouseEvent;
    
    [SWF(frameRate=60, width=465, height=465)]
    public class BIG extends Sprite {
        private var _canvas:Bitmap;
        private var _canvasData:BitmapData;
        private var _points:Vector.<Vector.<int>>;
        private var _pointA:Vector.<int>; 
        private var _pointB:Vector.<int>;
        private var _camera:Vector.<int>;
        private var _mouse:Boolean;
        private var _mousePos:Vector.<int>;

        public function BIG() {
            this._canvasData = new BitmapData(465, 465, false, 0);
            this._canvas = new Bitmap(this._canvasData);
            this._points = new Vector.<Vector.<int>>;
            this._points[0] = new <int> [232, 232, 2];
            this._points[1] = new <int> [232, 232, 15];
            
            this._camera = new Vector.<int>(3, true);
            this._camera[0] =232;
            this._camera[1] =232;
            this._camera[2] = 1;
            this._mouse = false;
            this._mousePos = new Vector.<int>(4, true);
          
            this.addEventListener(Event.ADDED_TO_STAGE, this.addedToStageHandler);
        }
        
        private function addedToStageHandler($event:Event) :void {
            this.removeEventListener(Event.ADDED_TO_STAGE, this.addedToStageHandler);
            
            this.addChild(this._canvas);
            
            this.stage.addEventListener(MouseEvent.MOUSE_DOWN, this.mouseDownHandler);
            this.stage.addEventListener(MouseEvent.MOUSE_UP, this.mouseUpHandler);
            this.addEventListener(Event.ENTER_FRAME, this.enterFrameHandler);
        }
        
        private function mouseDownHandler($event:MouseEvent) :void {
            this._mouse = true;
            this._mousePos[0] = this.stage.mouseX;
            this._mousePos[1] = this.stage.mouseY;
            this._mousePos[2] = this._mousePos[3] = 0;
        }
        
        private function mouseUpHandler($event:MouseEvent) :void {
            this._mouse = false;
        }
        
        private function enterFrameHandler($event:Event) :void {
            this._mousePos[2] = this._mousePos[0];
            this._mousePos[3] = this._mousePos[1];
            this._mousePos[0] = this.stage.mouseX;
            this._mousePos[1] = this.stage.mouseY;
            
            if (this._mouse) {
                this._camera[0] += (this._mousePos[0] - this._mousePos[2]);
                this._camera[1] += (this._mousePos[1] - this._mousePos[3]);
            //}else{
                //this._camera[0] = 232;
                //this._camera[1] = 232;
            }
            
            for (var $:int = 0; $ < this._points.length; $++) {
                var $f:int = this._camera[2] - this._points[$][2];
                
                this._canvasData.setPixel(this._points[$][0], this._points[$][1], 0);
                
                this._points[$][0] = (this._points[$][0] * ($f / this._points[$][2])); 
                this._points[$][1] = (this._points[$][1] * ($f / this._points[$][2]));
                
                this._canvasData.setPixel(this._points[$][0], this._points[$][1], 0xFFFFFF);
            }
        }
    }
}