0

我正在制作游戏,我需要在影片剪辑中找到影片剪辑的 currentFrame。

这是应该发生的:

我有一个名为“kaas”的盒子(movieclip),里面有2个movieclip。在舞台开始时,它停留在 frameLabel "heel" 上。当您碰撞(跳转)到“kaas”时,它应该播放 frameLabel “kapot”,它会播放。如果 frameLabel "kapot" 的 currentFrame 是第 52 帧,它应该 removeChild "kaas" 这就是问题所在,我不知道如何检测当前的 framelabel "kapot"。

现在我尝试了用 currentFrame 和 currentFrameLabel 查看事物,但没有成功。

以下是目前的部分:

                if (player.hitTestObject(kaas)) {
                    yVel = 3;
                    player.x += xVel + 2;
                    kaas.gotoAndStop("kapot"); // als je het blokje raakt.
                    if (kaas.currentFrame == 52){ // this is the part where I try to check the current frame of "kapot".
                        removeChild(kaas);
                    }
                }

我得到的错误是我不能指向一个空对象。(错误 #1009)。

现在我的问题是我将如何为此进行工作检查(if 语句)。

亲切的问候, 雷米

4

1 回答 1

1

几种可能的情况:

  • 包含该对象的影片剪辑正在播放,更改为不再包含该对象的帧(因此属性变为null

  • 该对象在一帧中具有实例名称,但在另一帧中没有,因此null在播放第二帧时变为

  • 代码的其他部分明确将其设置为null

  • 您的目标是 Flash Player 9,其中显示对象与您的gotoAndStop调用异步加载。这意味着初始化对象需要一段时间,在此之前你会遇到空值。解决方案是针对 Flash Player 10 或 11(在发布设置 [++] 中更改CtrlShiftF12。如果您确实需要以 Flash Player 9 为目标,可以使用复杂的方法来确保可以访问属性

(顺便说一句,你能翻译框架标签、注释和变量名吗?这会分散注意力,有时会隐藏有用的信息。)

于 2012-11-22T23:28:34.353 回答