0

我有一个 hitTest 设置来查看 mc1 是否命中 mc2。当 mc1 接触 mc2 时,我需要 mc1 循环播放。mc1 在接触 mc2 后会发出 oops,但在接触 mc2 时不会。当它接触 mc2 时,它会转到第 2 帧并停止。为什么会这样?

4

1 回答 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 回答