0

onEnterFrame イベントがあります。

package  {
    import flash.display.MovieClip;
    import flash.display.Loader;
    import flash.events.Event;
    import flash.net.URLRequest;
    import flash.display.BitmapData;
    import flash.geom.Matrix;
    import flash.errors.IOError;

    public class Ball extends MovieClip {

        private var images:Array;
        private var frames:Array;
        var i:int = 0;
        public function Ball(images:Array) {

            this.images = images
            frames = new Array();
            images.forEach(function(current){
                        trace(current);
                var loader:Loader = new Loader();
                loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadCompleted);
                loader.load(new URLRequest(current));
            });

        }

        private function onLoadCompleted(e:Event):void{
            frames.push(e.currentTarget.content);
            i++;
            if(i == images.length)
            {
                ready();
            }

        }

        private function ready():void{

            i = 0;
            addEventListener(Event.ENTER_FRAME, onEnterFrame);

        }

        private function onEnterFrame(e:Event):void{


            graphics.clear();
            var bitmapData:BitmapData = frames[i].bitmapData;
            graphics.beginBitmapFill(bitmapData, new Matrix(), false, true);
            graphics.drawRect(0, 0, 100, 100);
            graphics.endFill();
            i++;
            if(i == frames.length)
            {
                i = 0;

            }


        }

    }

}

このクラスは、画像の配列を取得してアニメーション化します。これが私のメイン クラスです。

public class Test extends MovieClip {

        private var ball:Ball;
        public function Test()
        {
            var images:Array = new Array();
            for(var i:int = 1; i < 21; i++)
            {
                images.push('ball' + i.toString(10) + '.png');

            }
            ball = new Ball(images);
            addChild(ball);
        }

    }

ご覧のとおり、20個の画像の配列を渡しています。問題は、良いアニメーションを作成するために必要な画像の数です。大まかにではなくスムーズに、毎回ball1.png、ball2.png、ball3などの新しい画像を作成します.png, ball4.png - 良いアニメーションを作成するには、ボールをピクセル単位で移動する必要がありますか? またはこれを行うためのより良い方法はありますか?

4

2 に答える 2

0

それは、あなたの知覚とデバイス、そしてコンテンツから何を視覚化したいかによって異なります。このサイトを参照してください:

http://www.mathworks.com/help/toolbox/mupad/plot/INTRO_FramesAndTimeRange.html

于 2012-08-14T07:35:06.133 に答える
0

私が最初に検討するのはフレームレートです。フレームレートとしてより多くの画像を使用しても意味がありません。

基本的に滑らかなアニメーションには 30 fps で十分です。また、モバイル デバイスでこれを検討する場合、良好なパフォーマンスを得るには 30 fps を超えるべきではないと思います。

画像の数とそれらをアニメーション化する方法については、このゲーム チュートリアル (Hungry Hero) を参照することをお勧めします。

http://www.hsharma.com/tutorials/starting-with-starling-ep-3-sprite-sheets/ http://www.hsharma.com/tutorials/starting-with-starling-ep-5-parallax-バックグラウンド/

于 2012-08-14T08:23:17.267 に答える