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

Get Adobe Flash player
by NiceGuy 24 Feb 2014
    Embed
/**
 * Copyright NiceGuy ( http://wonderfl.net/user/NiceGuy )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/wVeJ
 */

package {

    import flash.display.Sprite;

    import flash.events.MouseEvent;

    import flash.events.Event;

    import flash.text.TextField;

    public class m extends Sprite {

        public var t:Array;

        public var v:Array;

        public var b:Array;

        public var ss:int;

        public var q:TextField;

        public var s:int;

        public var l:int=1;

        public var n:Array;

        public var h:Boolean=false;

        public function m() {

            q=new TextField();

            addChild(q);

            q.x=500;

            q.y=380;

            t=new Array();

            b=new Array();

            n=new Array();

            for (var i:int=0; i<6; i++) {

                t[i]=new Array();

                for (var j:int=0; j<6; j++) {

                    w(i,j);

                }

            }

            for (i=0; i<8; i++) {

                k(i);

            }

            stage.addEventListener(MouseEvent.MOUSE_DOWN,dr);

            addEventListener(Event.ENTER_FRAME,u);

        }

        public function sc(g):void {

            q.text=s+"\nLvl: "+l+"\nSum: "+ss;

            if (g) {

                q.appendText("\nGame Over");

                stage.removeEventListener(MouseEvent.MOUSE_DOWN,dr);

                stage.removeEventListener(MouseEvent.MOUSE_MOVE,dw);

                stage.removeEventListener(MouseEvent.MOUSE_UP,ds);

                removeEventListener(Event.ENTER_FRAME,u);

            }

        }

        public function dr(e:MouseEvent):void {

            var i:int=Math.floor(mouseX/80);

            var j:int=Math.floor(mouseY/80);

            if (i<0 || i>5 || j<0 || j>5) {

                return;

            }

            v=new Array();

            v.push({x:i,y:j});

            t[i][j].k=true;

            ss=t[i][j].v;

            stage.removeEventListener(MouseEvent.MOUSE_DOWN,dr);

            stage.addEventListener(MouseEvent.MOUSE_MOVE,dw);

            stage.addEventListener(MouseEvent.MOUSE_UP,ds);

        }

        public function dw(e:MouseEvent):void {

            var i:int=Math.floor(mouseX/80);

            var j:int=Math.floor(mouseY/80);

            if (i<0 || i>5 || j<0 || j>5) {

                return;

            }

            if ((mouseX-(i*80+40))*(mouseX-(i*80+40))+(mouseY-(j*80+40))*(mouseY-(j*80+40))<1296) {

                if (i!=v[v.length-1].x || j!=v[v.length-1].y) {

                    if (Math.abs(i-v[v.length-1].x)<=1 && Math.abs(j-v[v.length-1].y)<=1) {

                        if (v.length>1&&i==v[v.length-2].x&&j==v[v.length-2].y) {

                            var bp:Object=v.pop();

                            t[bp.x][bp.y].k=false;

                            ss-=t[bp.x][bp.y].v;

                        }

                        else {

                            if (! t[i][j].k) {

                                v.push({x:i,y:j});

                                t[i][j].k=true;

                                ss+=t[i][j].v;

                            }

                        }

                    }

                }

            }

            graphics.clear();

            graphics.lineStyle(4,0x999999);

            graphics.moveTo(v[0].x*80+40,v[0].y*80+40);

            for (i=0; i<v.length; i++) {

                graphics.lineTo(v[i].x*80+40,v[i].y*80+40);

            }

        }

        public function ds(e:MouseEvent):void {

            graphics.clear();

            var removed:int=-1;

            stage.removeEventListener(MouseEvent.MOUSE_MOVE,dw);

            stage.removeEventListener(MouseEvent.MOUSE_UP,ds);

            if (e!=null && v.length>2) {

                for (i=0; i<b.length; i++) {

                    if (b[i].v==ss) {

                        removeChild(b[i].tl);

                        b[i]=null;

                        removed=i;

                        s+=ss*v.length;

                        n.splice(n.indexOf(ss),1);

                        l=Math.ceil(s/500);

                        break;

                    }

                }

            }

            if (removed>=0) {

                for (var i:int=0; i<v.length; i++) {

                    removeChild(t[v[i].x][v[i].y].tl);

                    t[v[i].x][v[i].y]=null;

                }

                h=true

                k(removed);

            }

            else {

                for (i=0; i<6; i++) {

                    for (var j:int=0; j<6; j++) {

                        t[i][j].k=false;

                    }

                }

                stage.addEventListener(MouseEvent.MOUSE_DOWN,dr);

            }

            ss=0;

        }

        public function k(p1:int):void {

            var o:Object=new Object();

            o.v=Math.ceil(Math.random()*20)+10;

            while (n.indexOf(o.v)>-1) {

                o.v=Math.ceil(Math.random()*20)+10;

            }

            n.push(o.v);

            o.p=0;

            o.tl= new Sprite();

            var tt:TextField=new TextField();

            tt.text=o.v;

            tt.y=30;

            tt.x=30;

            o.tl.addChild(tt);

            o.tl.x=(p1%2+6)*80;

            o.tl.y=Math.floor(p1/2)*80;

            addChild(o.tl);

            b[p1]=o;

        }

        public function w(_x:int,_y:int,_a=1):void {

            var o:Object=new Object();

            o.k=false;

            o.v=Math.ceil(Math.random()*9);

            o.tl=new Sprite();

            o.tl.x=_x*80;

            o.tl.y=_y*80;

            o.tl.graphics.lineStyle(4,0xff0000);

            o.tl.graphics.drawCircle(40,40,35);

            var tt:TextField=new TextField();

            tt.text=o.v;

            tt.y=30;

            tt.x=35;

            o.tl.addChild(tt);

            o.tl.alpha=_a;

            o.trans=0;

            addChild(o.tl);

            t[_x][_y]=o;

        }

        function u(e:Event):void {

            sc(false);

            for (var i:int=0; i<8; i++) {

                b[i].p+=l;

                b[i].tl.graphics.clear();

                b[i].tl.graphics.lineStyle(4,0x888888);

                b[i].tl.graphics.drawCircle(40,40,40-40*b[i].p/10000);

                if (b[i].p>=10000) {

                    sc(true);

                }

            }

            if (h) {

                var a:Boolean=false;

                for (i=0; i<6; i++) {

                    for (var j:int=0; j<6; j++) {

                        if (t[j][i]!=null&&t[j][i].tl.alpha<1) {

                            t[j][i].tl.alpha+=0.25;

                            a=true;

                        }

                    }

                }

                for (i=6-2; i>=0; i--) {

                    for (j=6-1; j>=0; j--) {

                        if (t[j][i+1]==null&&t[j][i]!=null) {

                            a=true;

                            t[j][i].tl.y+=80/4;

                            if (t[j][i].trans==3) {

                                t[j][i].trans=0;

                                t[j][i+1]=t[j][i];

                                t[j][i]=null;

                            }

                            else {

                                t[j][i].trans++;

                            }

                        }

                        else {

                            if (i==0 && t[j][i]==null) {

                                w(j,i,0);

                                a=true;

                            }

                        }

                    }

                }

                if (! a) {

                    stage.addEventListener(MouseEvent.MOUSE_DOWN,dr);

                    h=false;

                }

            }

        }

    }

}