forked from: ExtentionExample

by nausicaa forked from ExtentionExample (diff: 1)
♥0 | Line 65 | Modified 2010-01-19 17:45:29 | MIT License
play

ActionScript3 source code

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

// forked from yd_niku's ExtentionExample
package {
    import flash.display.Sprite;
    public class FlashTest extends Sprite {
        public function FlashTest() {
            var ball:Sprite= new BallSprite(0xFF9933);
            ball.x = 50;
            ball.y = 50
            addChild( ball );
            
            var moveBall:Sprite= new MoveBallSprite (0x000066);
            moveBall.x = 100;
            moveBall.y = 50
            addChild( moveBall );
            
            var dropBall:Sprite= new DropBallSprite(0x006600);
            dropBall.x = 150;
            dropBall.y = 50
            addChild( dropBall );
            
            var mouseTraceBall:Sprite= new MouseTracerBallSprite ( 0xFF3300 );
            mouseTraceBall.x = 200;
            mouseTraceBall.y = 50;
            addChild( mouseTraceBall );
            
        }
    }
}

import flash.display.*;
import flash.events.*;

class BallSprite extends Sprite {
    public function BallSprite( color:uint ){
        super();
        
        graphics.beginFill(color);
        graphics.drawCircle( 0, 0, 10 );
        graphics.endFill();
    }
}
class MoveBallSprite extends BallSprite {
    public var velocityX:Number = 8;
    public var velocityY:Number = 6;
    public function MoveBallSprite( color:uint ) {
        super( color );
        addEventListener( Event.ENTER_FRAME, updatePosition );
    }
    private function updatePosition( e:Event ):void {
        x += velocityX;
        y += velocityY;
    }
}

class DropBallSprite extends MoveBallSprite{
    public var gravity:Number = 0.6;
    public function DropBallSprite ( color:uint ) {
        super( color );
        addEventListener( Event.ENTER_FRAME, updateVelocity );
    }
    private function updateVelocity ( e:Event ):void {
        velocityY += gravity;
    }
}

class MouseTracerBallSprite extends MoveBallSprite{
    public function MouseTracerBallSprite ( color:uint ) {
        super( color );
        addEventListener( Event.ENTER_FRAME, updateVelocity );
    }
    private function updateVelocity ( e:Event ):void {
        velocityX = ( root.mouseX - x ) * 0.1;
        velocityY = ( root.mouseY - y ) * 0.1;
    }
}