Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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
Flash 在as3中平滑地在屏幕上移动对象_Flash_Actionscript 3_Flashdevelop - Fatal编程技术网

Flash 在as3中平滑地在屏幕上移动对象

Flash 在as3中平滑地在屏幕上移动对象,flash,actionscript-3,flashdevelop,Flash,Actionscript 3,Flashdevelop,我正在用flashDevelop在as3中编写一个游戏 播放器(除其他外)正在屏幕上移动 使用更新his坐标的EnterFrame事件 当他移动的时候,很难看到动画的细节,而且看起来有点模糊 如何解决这个问题?正如Patrick提到的,您应该避免使用非整数坐标。您只需要对值进行四舍五入。因此,不是: clip.x += value 使用: 如果设置非整数坐标闪烁,则当闪烁尝试分割像素时,由于消除混叠,剪辑可能会显示模糊。您也可以尝试增加帧速率。正如Patrick提到的,您应该避免使用非整数坐标

我正在用flashDevelop在as3中编写一个游戏 播放器(除其他外)正在屏幕上移动 使用更新his坐标的EnterFrame事件 当他移动的时候,很难看到动画的细节,而且看起来有点模糊
如何解决这个问题?

正如Patrick提到的,您应该避免使用非整数坐标。您只需要对值进行四舍五入。因此,不是:

clip.x += value
使用:


如果设置非整数坐标闪烁,则当闪烁尝试分割像素时,由于消除混叠,剪辑可能会显示模糊。您也可以尝试增加帧速率。

正如Patrick提到的,您应该避免使用非整数坐标。您只需要对值进行四舍五入。因此,不是:

clip.x += value
使用:


如果设置非整数坐标闪烁,则当闪烁尝试分割像素时,由于消除混叠,剪辑可能会显示模糊。您也可以尝试增加帧速率。

这可能对您有帮助。
优化有两种方法

希望这对你有帮助。
优化有两种方法

您考虑过使用Tweening库吗

其中一些是轻量级的,可以根据FPS(您应该尽量保持较高的FPS)自动计算移动

以下是其中的几个:


  • 希望有帮助

    您考虑过使用Tweening库吗

    addEventListener(Event.ENTER_FRAME, smothMove);
    
    var i:int = 0;
    var j:int= 1;
    
    function smothMove (event:Event):void
    {
    
    clip.x = clip.x + i;
            i = i + j;
    
    }
    
    其中一些是轻量级的,可以根据FPS(您应该尽量保持较高的FPS)自动计算移动

    以下是其中的几个:


  • 希望有帮助

    您可能希望将像素坐标设置为整数。另一个可能有用的方法是Tweens,具体取决于您想要的运动类型和动画。只需谷歌“flashas3tweens”或查看一个简单的教程,比如你正在制作动画的对象是什么?矢量还是位图?我很确定它是矢量。(它不是位图)您可能需要将像素坐标设置为整数。根据所需的运动和动画类型,另一个可能有用的方法是Tweens。只需谷歌“flashas3tweens”或查看一个简单的教程,比如你正在制作动画的对象是什么?矢量还是位图?我很确定它是矢量。(它不是位图)我有一个这样的剪辑。x+=int(值),我想它是一样的,但我看不出有什么不同。我有一个这样的剪辑。x+=int(值),我想它是一样的,但我看不出有什么不同。我更喜欢自己做。也许你可以解释他们是怎么做的?我更喜欢自己做也许你可以解释他们是怎么做的?
    addEventListener(Event.ENTER_FRAME, smothMove);
    
    var i:int = 0;
    var j:int= 1;
    
    function smothMove (event:Event):void
    {
    
    clip.x = clip.x + i;
            i = i + j;
    
    }