Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.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 AS3-如何使用Event.EnterFrame?_Actionscript 3 - Fatal编程技术网

Actionscript 3 AS3-如何使用Event.EnterFrame?

Actionscript 3 AS3-如何使用Event.EnterFrame?,actionscript-3,Actionscript 3,所以,我最近问了一个关于我的一款游戏的问题,我认为其中一个答案是有潜力的,但我不知道如何使用它。代码如下: 如果我改变窗户的尺寸,岩石似乎就一直在窗外移动。有什么方法可以解决这个问题并使其返回到起始块?不确定这是否是您唯一的问题,但循环中的850-=15将永远不会==0。您可以尝试将代码更改为 if (rock.x < 0) {} if(rock.x

所以,我最近问了一个关于我的一款游戏的问题,我认为其中一个答案是有潜力的,但我不知道如何使用它。代码如下:
如果我改变窗户的尺寸,岩石似乎就一直在窗外移动。有什么方法可以解决这个问题并使其返回到起始块?

不确定这是否是您唯一的问题,但循环中的850-=15将永远不会==0。您可以尝试将代码更改为

if (rock.x < 0) {}
if(rock.x<0){

好的,我已经回答了你前面的问题,我也会回答这个问题,因为建议仍然是半相似的。虽然我的回答不仅提供了实现,而且适合您当前的设置,但如果您打算使用enter frame,则考虑到事件帧的大量递减,您的
速度
变量存在一些固有问题。请注意,如果这些答案缓解了您的问题,请将其标记为正确,以便其他用户可以从中受益

如果要更改窗口大小,请记住要不断设置:

rock.x = 850;
在函数
moveRock(e:Event)
中,如果窗口大小明显小于850像素,则在该窗口大小之外设置“rock”对象一次
rock.x=0
。正如@Andrew Sellenrick所述,moveRock函数if语句:

if (rock.x == 0)
也可能会导致一个问题,因为你翻译的是-15,这可能是你的岩石将永远有一个x值为0。因此,将if语句更改为:

if (rock.x <= 0)

没有理由在那里添加和删除事件侦听器。

您能将我们链接到游戏本身吗?
function moveRock(event:Event):void {
    rock.x -= speed;
    if (rock.x <= 0) {
        rock.x = 850;
        rock.y = 520;
    }
}