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 2011-7-13

Get Adobe Flash player
by yama3 13 Jul 2011
    Embed
/**
 * Copyright yama3 ( http://wonderfl.net/user/yama3 )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/xOhl
 */

package {
    import com.bit101.components.PushButton;
    import flash.display.*;
    import flash.events.*;
    import flash.geom.*;
    import net.hires.debug.*;
    import org.libspark.betweenas3.*;
    import org.libspark.betweenas3.easing.*;
    import org.libspark.betweenas3.tweens.*;
    
    public class FlashTest extends Sprite {
        private var _w:int = 465;
        private var _h:int = 465;
        private var _wall0:Sprite, _wall1:Sprite;
        private var _bmd0:BitmapData, _bmd1:BitmapData;
        private var _count:Number = Number.MIN_VALUE;
        private var _offsetZ:Number = -15;
        private var _dotSize:int = 4;
        private var _dorContainer0:MovieClip, _dotContainer1:MovieClip;
        private var _ct0:ColorTransform, _ct1:ColorTransform;
        private var _wallColorTime:int = 5;
        private var _wallColorTweenDelay:int = 10;
        private var _wallColorArray00:Array;
        private var _wallColorArray10:Array;
        private var _button:PushButton;
        
        protected var _wallColor0:Object = {R:0x9C, G:0x89, B:0x6B};
        protected var _wallColor1:Object = {R:0xBB, G:0xD6, B:0xCF};
        
        protected var _wallColorRed0:Object = {R:0x9C, G:0x6B, B:0x6B};
        protected var _wallColorYellow0:Object = {R:0x9C, G:0x6C, B:0x6B};
        protected var _wallColorGreen0:Object = {R:0x89, G:0x6B, B:0x9C};
        protected var _wallColorMosGreen0:Object = {R:0x89, G:0x9C, B:0x9C};
        protected var _wallColorBlue0:Object = {R:0x6B, G:0x9C, B:0x89};
        protected var _wallColorPurple0:Object = {R:0x6B, G:0x89, B:0x89};
        
        protected var _wallColorArray0:Array;
        
        protected var _wallColorRed1:Object = {R:0xBB, G:0xD6, B:0xCF};
        protected var _wallColorYellow1:Object = {R:0xD6, G:0xD6, B:0xCF};
        protected var _wallColorGreen1:Object = {R:0xD6, G:0xCF, B:0xBB};
        protected var _wallColorMosGreen1:Object = {R:0xCF, G:0xCF, B:0xD6};
        protected var _wallColorBlue1:Object = {R:0xCF, G:0xBB, B:0xD6};
        protected var _wallColorPurple1:Object = {R:0xBB, G:0xBB, B:0xCF};
        protected var _wallColorArray1:Array;
        
        public function FlashTest() {
            stage.align = StageAlign.TOP_LEFT;
            stage.scaleMode = StageScaleMode.NO_BORDER;
            _w = stage.stageWidth;
            _h = stage.stageHeight;
            
            var perspectiveProjection:PerspectiveProjection = this.transform.perspectiveProjection;
            perspectiveProjection.projectionCenter = new Point(_w / 2, _h / 2);
            _wallColorArray0 = [_wallColorRed0, _wallColorYellow0, _wallColorGreen0, _wallColorMosGreen0, _wallColorBlue0, _wallColorPurple0];
            _wallColorArray1 = [_wallColorRed1, _wallColorYellow1, _wallColorGreen1, _wallColorMosGreen1, _wallColorBlue1, _wallColorPurple1];
            
            _bmd0 = createBmd(_dotSize, _dotSize, 0xff000000);
            _bmd1 = _bmd0.clone();
            
            _wall0 = createWall(_w, _h, _bmd0, -_w / 2, -_h / 2);
            _wall1 = createWall(_w, _h, _bmd1, -_w / 2, -_h / 2);
            
            _wall0.transform.colorTransform = new ColorTransform(1, 1, 1, 1, 0x9C, 0x89, 0x6B);
            _wall1.transform.colorTransform = new ColorTransform(1, 1, 1, 1, 0xBB, 0xD6, 0xCF);
            addChild(_wall0).y = _h / 2;
            addChild(_wall1).y = _h / 2;
            
            wallColorNext();        
            stage.addChild(new Stats);
            
            addEventListener(Event.ENTER_FRAME, enterFrameHandler);
            
            _button = new PushButton(stage, 0, 0, "FULL SCREEN", onMouseClick);
            _button.x = _w / 2 - 50;
            _button.y = 20;
            
            wallColorNext();
            
            stage.addEventListener(FullScreenEvent.FULL_SCREEN, fullScreenChangeHandler);
            BetweenAS3.delay(BetweenAS3.tween(this, {alpha:1}, {alpha:0}, 3, Linear.linear), 0.5).play();    
        }
        
        private function fullScreenChangeHandler(e:FullScreenEvent):void
        {
            if(e.fullScreen) _button.visible = false;
            else _button.visible = true;
        }
        
        private function onMouseClick(e:MouseEvent):void
        {
            stage.displayState = "fullScreen";
        }
        
        protected function wallColorNext(index:int = 0):void {
            var obj0:Object = _wallColorArray0[index];
            var obj1:Object = _wallColorArray1[index];
            var iTween0:ITween = BetweenAS3.delay(BetweenAS3.to(_wall0, {transform:{colorTransform: {redOffset:obj0.R, greenOffset:obj0.G, blueOffset:obj0.B}}}, _wallColorTime, Linear.linear), _wallColorTweenDelay);
            var iTween1:ITween = BetweenAS3.delay(BetweenAS3.to(_wall1, {transform:{colorTransform: {redOffset:obj1.R, greenOffset:obj1.G, blueOffset:obj1.B}}}, _wallColorTime, Linear.linear), _wallColorTweenDelay);
            iTween0.onComplete = function():void {
                index++;
                if(index >= _wallColorArray1.length) index = 0;
                wallColorNext(index);
                _wall0.transform.colorTransform;
            };
            iTween0.play();
            iTween1.play();
        }
        
        private function enterFrameHandler(e:Event):void {
            _count += 0.05;
            
            _wall0.x = Math.sin(_count / 3) * 50 + _w / 2;
            _wall1.x = Math.sin(_count / 3) * 15 + _w / 2;
            _wall0.z = (1 - Math.sin(_count / 12)) * 20 - 160;
            _wall1.z = (1 - Math.sin(_count / 12)) * 5 + _offsetZ - 160;
            _wall0.rotationY = Math.sin(_count / 1.5) * 1.5;
            _wall1.rotationY = Math.sin(_count / 2) * 1;
            _wall0.rotationZ = (1 - Math.cos(_count / 3)) * 3;
            _wall1.rotationZ = (1 - Math.cos(_count / 9)) * 2;
        }
        
        private function createWall(w:int, h:int, bmd:BitmapData, x:int=0, y:int=0):Sprite {
            var sp:Sprite = new Sprite();
            sp.graphics.clear();
            sp.graphics.beginBitmapFill(bmd);
            sp.graphics.drawRect(x, y, w, h);
            sp.graphics.endFill();
            return sp;
        }
        
        private function createBmd(w:int, h:int, color:int):BitmapData {
            var bmd:BitmapData = new BitmapData(w, h, true, 0x00000000);
            for(var i:int=0; i<w; i++) {
                for(var ii:int = 0; ii < w; ii++) {
                    if((i < int(w/2) && ii > int(w/2-1)) || (i > int(w/2-1) && ii < int(w/2))) {
                        bmd.setPixel32(ii, i, color);
                    }
                }
            }
            return bmd;
        }
    }
}