我有一个 hitTest 设置来查看 mc1 是否命中 mc2。当 mc1 接触 mc2 时,我需要 mc1 循环播放。mc1 在接触 mc2 后会发出 oops,但在接触 mc2 时不会。当它接触 mc2 时,它会转到第 2 帧并停止。为什么会这样?
问问题
184 次
1 回答
1
我在您的代码中闻到的问题是您必须使用 onEnterFrame 方法来检查 mc1 是否正在接触 mc2。当 hitTest 返回 true 时,您必须使用:
mc1.gotoAndPlay(2);
这里的问题是,当两个 MC 相互碰撞时,onEnterFrame 方法迫使 mc1 每秒从第 2 帧开始播放 24 次(取决于您使用的帧速率)。而且仅仅因为过渡太快,它似乎卡在了第 2 帧。
我的建议是有一个变量来记录这些 MC 的命中。然后请求mc1去玩。这是您可以参考的示例代码。
mc1.stop();
mc1.onPress = function() {
startDrag(mc1);
};
mc1.onRelease = function() {
stopDrag();
};
var touched = 0;
onEnterFrame = function () {
if (mc1.hitTest(mc2)) {
trace("you hit the circle");
mc1.play();
} else {
touched = 0;
}
if (touched == 1) {
mc1.play();
}else {
mc1.stop();
}
};
希望这可以帮助。
于 2013-10-31T11:25:17.737 回答