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

練習問題 円を画面から出ないように反射させる

Get Adobe Flash player
by toburau 18 Mar 2010
/**
 * Copyright toburau ( http://wonderfl.net/user/toburau )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/uxiz
 */

// forked from 9re's 円を動かす
package {
    import flash.display.*;
    import flash.events.Event;
 
    [SWF(frameRate="30", width="465", height="465")]
    public class MyFirstAnimation extends Sprite { 
        private var _circle:Circle;
 
        public function MyFirstAnimation() {
            // クラスCircleのインスタンスを作る
            _circle = new Circle(10);
            // 半透明(不透明度25%)
            _circle.alpha = 0.25;
            _circle.vx = 3;
            _circle.vy = 4;
            
            // 最初の位置をwonderflの画面の中央にセット
            _circle.x = 465 / 2;
            _circle.y = 465 / 2;
            
            // 表示リストに追加
            addChild(_circle);
 
            // 1フレーム毎に実行する処理にenterFrameHandlerを追加する
            addEventListener(Event.ENTER_FRAME, enterFrameHandler);
        }
 
        // フレーム毎に行われる処理 [25行目で登録される]
        private function enterFrameHandler(e:Event):void {
            // 1フレーム分動かす
            _circle.move();
            if(_circle.x < 0 || _circle.x > 465) { _circle.vx *= -1; }
            if(_circle.y < 0 || _circle.y > 465) { _circle.vy *= -1; }
        }
    }
}
 
import flash.display.Sprite;

class Circle extends Sprite {
    public var vx:Number;
    public var vy:Number;
    public var radius:Number;
    // コンストラクタ
    public function Circle(_radius:Number, _fillColor:uint = 0x000000) {
        // 塗り_fillColor, 半径_radiusの円
        graphics.beginFill(_fillColor);
        graphics.drawCircle(0, 0, _radius);
        graphics.endFill();
        // 半径の大きさをパブリックな変数に保存しておく
        radius = _radius
    }
    // 1フレーム分の動き
    public function move():void {
        x += vx;
        y += vy;
    }
}