flash on 2012-7-19

by mutantleg
♥0 | Line 108 | Modified 2012-07-19 19:30:42 | MIT License
play

ActionScript3 source code

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

package {
    import flash.events.MouseEvent;
    import flash.events.Event;
    import flash.display.Graphics;
    import flash.display.Sprite;
    public class FlashTest extends Sprite {
       
       public var paddle:Sprite;
       
       public var vecBall:Vector.<aBall>;
       
        public function FlashTest() {
            // write as3 code here..
            
            vecBall = new Vector.<aBall>;
            vecBall.push(new aBall());
            vecBall[0].bStick = true;
            addChild(vecBall[0]);
            
            var g:Graphics;
            paddle = new Sprite();
            g = paddle.graphics;
            g.lineStyle(1, 0);
            g.drawRect(-32,-8,64,16);
            addChild(paddle);
            
            paddle.x = 250;
            paddle.y = 380;
            
            stage.addEventListener(Event.ENTER_FRAME, onEnter);
            stage.addEventListener(MouseEvent.MOUSE_DOWN, mdown);
        }//ctor
        
        public var relBall:int = 0;
        
        public function mdown(e:MouseEvent):void
        {
            relBall = 1;
        }//mdown
        
        public function onEnter(e:Event):void
        {
            var vx:Number;
            var vy:Number;
            
            vx = (this.mouseX - paddle.x) * 0.4; 
            if (vx < -16) { vx = -16;}
            if (vx > 16) { vx = 16; }
            
            paddle.x += vx;
            if (paddle.x < 40) { paddle.x = 40;}
            if (paddle.x >= 430) { paddle.x = 430; }
            
            var i:int;
            var num:int;
            var a:aBall;
            num = vecBall.length;
            for (i =0; i<num;i++)
            {
                a = vecBall[i];
                if (a.bDead == true) { continue; }
                a.update();
                if (a.bStick)
                {
                 a.vx = 0;
                 a.vy = 0;
                 a.x = paddle.x;
                 a.y = paddle.y - 8 - 8;   
                 if (relBall)
                 {
                     a.bStick = false;
                     a.vy = -6;
                 }//endif
                }
                else
                {
                    if (paddle.hitTestObject(a))
                    {
                        if (a.vy > 0) 
                        {
                             a.vy = -a.vy;
                             if (a.vy > -3) { a.vy = -5;}
                        }
                        
                        if (a.x < paddle.x)
                        {
                          a.vx -= Math.random() *2;   
                        }
                        else
                        {
                          a.vx += Math.random() * 2;      
                         }
                        
                    }//endif
                    
                }//endif
                
            }//nexti
            
            relBall = 0;
            
        }//onenter
        
        
        
    }
}
import flash.display.Sprite;

internal class aBall extends Sprite
{
    public var vx:Number = 0;
    public var vy:Number = 0;
    public var bDead:Boolean = false;
    public var bStick:Boolean = false;
    
    public function aBall()
    {
     graphics.clear();
     graphics.lineStyle(1,0);
     graphics.drawCircle(0,0,8);   
    }//ctor
    
    public function update():void
    {
        vy += 0.12;
        
        x += vx;
        y += vy;
        
        if (vx < 0 && x < 40) { x = 40; vx = -vx;}
        if (vx > 0 && x > 430) { x = 430; vx = -vx;}
        if (vy < 0 && y < 0) { y = 0; vy = -vy; }
        if (vy >= 0 && y > 430) { vx = 0; vy = 0; bDead = true; }
    }//update
    
}//ball