【发布时间】:2017-09-03 05:45:46
【问题描述】:
有人可以帮我把这段代码从 as2 转换成 as3 吗?
对于一个简单的圆圈,我希望当我将鼠标光标向右移动时,圆圈旋转(不需要移动鼠标光标但圆圈仍在旋转)
我知道 _root._xmouse 转到 mouseX 并且 this._rotation 转到 this.DisplayObject.rotation
onClipEvent(enterFrame)
{
this.xmouse = Math.min(908, Math.max(0, _root._xmouse));
if (_root._xmouse > 0)
{
var offset = Stage.width / 2 - this.xmouse;
this._rotation = this._rotation + offset / 2000;
} else {
this._rotation = this._rotation - 0.02;
}
this._rotation = this._rotation % 180;
}
AS3 版本:
stage.addEventListener( Event.ENTER_FRAME, mouseOver );
function mouseOver( e: Event ) : void
{
rota.mouseX == Math.min(908, Math.max(0, stage.mouseX));
if (stage.mouseX > 0)
{
var offset = stage.stage.width / 2 - rota.mouseX;
rota.rotation = rota.rotation + offset / 2000;
}else{
rota.rotation = rota.rotation - 0.02;
}
rota.rotation = rota.rotation % 180;
}
【问题讨论】:
-
“不需要移动我的鼠标光标,但圆圈仍在旋转”...
EnterFrame就是这样做的。它以 SWF 的 FPS 速率重复代码。也许您希望Mouse_Move侦听器中的代码逻辑?显示您尝试制作的 AS3 版本代码,更容易帮助您修复它。 -
是的,也许是 mouse_move 监听器,这个 as2 代码如何工作(作为 as3 代码)...?
-
我们需要查看您目前拥有的 AS3 代码,以展示如何应用 as2 逻辑。例如:没有人知道您的圈子变量名称等。您可以将
this替换为您的圈子变量名称,并将其用作circleName.rotation = circleName.rotation % 180;等 -
“为我转换此代码” 和 “编写我的代码” 问题不适用于 Stackoverflow。请参阅
How to Ask.. 我愿意帮助纠正您在 AS3 工作中的任何错误。使用edit按钮添加您的 AS3 工作以获得更快的答案。不管怎样_root.是 AS3stage.等等。this也不是必需的,所以要么使用test要么event.currentTarget(currentTarget 与鼠标移动监听器对话)。没有 AS3 代码来查看真的很难给你建议。 -
好的,我添加了 as3 版本。
标签: actionscript-3 actionscript actionscript-2