Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 我需要多少图像才能更流畅地制作动画(Actionscript);_Actionscript 3_Flash_Animation_Actionscript_Multiplication - Fatal编程技术网

Actionscript 3 我需要多少图像才能更流畅地制作动画(Actionscript);

Actionscript 3 我需要多少图像才能更流畅地制作动画(Actionscript);,actionscript-3,flash,animation,actionscript,multiplication,Actionscript 3,Flash,Animation,Actionscript,Multiplication,我有一个单帧事件: 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.IOErr

我有一个单帧事件:

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);
        }

    }
公共类测试扩展了MovieClip{
私人var球:球;
公共功能测试()
{
变量图像:数组=新数组();
对于(变量i:int=1;i<21;i++)
{
push('ball'+i.toString(10)+'.png');
}
球=新球(图像);
addChild(ball);
}
}

正如你看到的,我正在传递一个包含20个图像的数组,所以问题是我需要多少图像来制作一个好的动画,不是粗略的,而是平滑的,每次创建一个新的图像,比如ball1.png,ball2.png,ball3.png,ball4.png,我需要通过像素移动球来制作一个好的动画?或者有更好的方法吗?

这取决于您的感知和设备,以及您希望从内容中看到什么。 请参阅本网站:


我首先要考虑的是帧率。将更多图像作为帧速率是没有意义的

基本上,对于平滑动画,每秒30帧应该可以。此外,如果你考虑到移动设备,我认为你不应该超过30fPS,以便有一个良好的性能。 关于图像的数量和如何设置动画,我建议你看看这个游戏教程(饥饿英雄)


或者使用图形内置对象及其功能或创建图像有什么更好的方法?我是新手,我不知道如何做得更好,画圆和线我将不得不画图形。clear()和在每个方法中复制/粘贴代码以绘制越来越多的人或粘贴人的动作(或创建30-50个图像))有很多东西要读=),你能给我一个简短的回答吗?)