【发布时间】:2012-11-13 04:32:58
【问题描述】:
在 AS3 中,当鼠标位于舞台右侧时,我试图让背景水平滚动。 (我的后台实例叫做“bp”。)
这不起作用:
while (mouseX > 600)
{bp.x -= 2;}
【问题讨论】:
标签: actionscript-3 flash actionscript scroll horizontal-scrolling
在 AS3 中,当鼠标位于舞台右侧时,我试图让背景水平滚动。 (我的后台实例叫做“bp”。)
这不起作用:
while (mouseX > 600)
{bp.x -= 2;}
【问题讨论】:
标签: actionscript-3 flash actionscript scroll horizontal-scrolling
Flash 用户界面逐帧更新,不应像您的 while 循环实现那样阻塞。
每一帧,您都可以测试 mouseX 的位置并确定滚动背景的程度。
这是一个示例实现:
import flash.events.Event;
addEventListener(Event.ENTER_FRAME, frameHandler);
function frameHandler(event:Event):void
{
var d:Number = (stage.stageWidth >> 1) - stage.mouseX;
bg.x -= d * 0.1;
}
【讨论】:
while 循环只运行一次。它不会一直运行,检查mouseX > 600。它运行一次,确定它是错误的,然后继续。当前设置循环的方式,它永远不会再次运行。按照 Jason 的说明进行操作,您就可以完成这项工作。或者,您也可以在 MouseEvent.MOUSE_MOVE 处理程序中执行此操作。在您的单线程应用程序上,这可能会减少 CPU 密集度。