2

我有一个场景,其中有几个对象作为影片剪辑,可以一次单击一个。发生的情况是我能够单击每个对象,然后单击场景切换到下一帧。

我该如何改变呢?

基本上我有一把钥匙和一扇门,都是电影剪辑。您可以收集钥匙,它会消失,然后您可以点击门打开它。实际发生的情况是您都可以点击钥匙和门。当您单击钥匙时,它按预期工作,但是当您单击门时,钥匙仍然消失。对于超过 2 个对象,这更烦人。

密钥代码:

addEventListener(MouseEvent.CLICK, CollectKey);

function CollectKey(event: MouseEvent): void
{
    this.visible = false;
    // door
    MovieClip(root).door.addEventListener(MouseEvent.CLICK, MovieClip(root).FinishGame);
}

门的代码:

stop();

function FinishGame(event: MouseEvent): void
{
    if(MovieClip(root).currentFrame == 4)
    {
        nextFrame();
    }
}

http://www.wuala.com/sollniss/stuff/Untitled-2.swf/
http://www.wuala.com/sollniss/stuff/Untitled-2.fla/

4

2 回答 2

0

而且,可能只有可见的 false 是不够的,还需要为 key 元素设置 enabled = false 和 mouseEnabled = false ,因为没有它,它会一直听到点击事件。

于 2013-04-29T17:55:39.860 回答
0

编辑

查看您的 .fla 后,我可以看到您的问题:

在您的第一帧上,您有以下脚本:

stop();

addEventListener(MouseEvent.CLICK, StartGame);

function StartGame(event: MouseEvent): void
{
    nextFrame();
}

您可能不知道您在此处添加的鼠标单击侦听器在您告诉它之前不会消失(即使框架发生变化)。这就是为什么每次点击都会调用下一帧。

要解决这个问题,只需在继续下一帧之前删除监听:

function StartGame(event: MouseEvent): void
{
    removeEventListener(MouseEvent.CLICK, StartGame);
    nextFrame();
}
于 2013-04-29T17:46:57.053 回答