0

ゲームを作成していて、ムービークリップ内のムービークリップの currentFrame を見つける必要があります。

これが起こるべきことです:

その中に2つのムービークリップがある「kaas」と呼ばれるボックス(ムービークリップ)があります。ステージの起動時に、frameLabel の「heel」にとどまります。「kaas」に衝突(ジャンプ)すると、frameLabel「kapot」が再生されます。frameLabel "kapot" の currentFrame がフレーム 52 である場合、removeChild "kaas" が必要であり、そこに問題があるため、どのフレームラベル "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);
                    }
                }

私が得るエラーは、null のオブジェクトに直接送信できないというものです。(エラー #1009)。

今私の質問は、これに対してどのように動作チェック(ifステートメント)を行うかです。

敬具、 レミー

4

1 に答える 1

1

考えられるいくつかのケース:

  • オブジェクトを含むムービークリップが再生され、オブジェクトを含まないフレームに変更されます (したがって、属性は になりますnull)

  • このオブジェクトは、あるフレームではインスタンス名を持っていますが、他のフレームでは持っていませんnull

  • コードの他の部分で明示的に設定されていますnull

  • 表示オブジェクトがgotoAndStop呼び出しに対して非同期にロードされる Flash Player 9 をターゲットにしています。これは、オブジェクトが初期化されるまでに時間がかかり、その前にヌルで立ち往生していることを意味します。解決策は、Flash Player 10 または 11 をターゲットにすることです (公開設定 [ Ctrl+ Shift+ F12] で変更します)。本当に Flash Player 9 をターゲットにする必要がある場合は、属性にアクセスできるようにするための複雑な方法があります。

(ちなみに、フレームのラベル、コメント、変数名を翻訳していただけませんか? 気が散ってしまい、有益な情報が隠れてしまうこともあります。)

于 2012-11-22T23:28:34.353 に答える