0

私はハイパーメディアプレーヤーを作成してきましたが、グリッチアウトしている段階になり、どうやら...

TypeError: Error #1009: Cannot access a property or method of a null object reference.
    at AvalancheCityHypermediaPlayer_fla::MainTimeline/fl_CustomMouseCursor()

これが私のコードです:

import flash.events.Event;

cust_cursor.mouseEnabled= false;

cust_cursor.addEventListener(Event.ENTER_FRAME, fl_CustomMouseCursor);

function fl_CustomMouseCursor(event:Event)

{

    cust_cursor.x = stage.mouseX;

    cust_cursor.y = stage.mouseY;
}

Mouse.hide();

なぜ正しく動作しないのかわかりません。基本的に、ボタンが上に置かれると、フレーム 2 にジャンプして停止することを意図していますが、そのフレームにジャンプしてから、フレーム 2 で停止することなくフレーム 1 にまっすぐジャンプしています。フレーム 1 で停止します。

4

1 に答える 1

0

1. あなたのエラーは行番号を生成していません。あなた (そして私) は、これがデバッグにとって非常に貴重であることに気付くでしょう。Flash IDE の場合は、swf 設定のパブリッシュ設定で、「デバッグを許可する」というタイトルのトグルとしてこれをオンにすることができます。

2. このコードはクラス内ですか、それともドキュメント コード (Flash IDE の [アクション] タブなど) 内ですか? クラス内にある場合は、ステージの参照をクラスのコンストラクターに渡し、それを内部的に永続的な変数に割り当てて、fl_CustomMouseCursor がアドレス指定できるようにしてください。デフォルトでは、クラスにはステージを参照する内部的な方法がありません。それが #1009 エラーを引き起こしていると思います。

たとえば、クラス コンストラクター内で...

package com.example {
    public class MyClass {
        private var stage;
        public function MyClass(arg) {
            stage = arg;
        }
    }
}

そして、クラスをインスタンス化するときの外...

var myObj:MyClass = new MyClass(stage);

3. stop();コードをフレームで停止する場合は、またはを使用しますgotoAndStop()

4 . 最後に、Flash IDE でコンパイルしている場合は、これをデバッグして、ランタイム環境で問題が発生しているスタック内の変数を正確に確認できます。デバッグ メニューから、または でコンパイルすることによってアクセスできますcontrol-shift-enter

于 2012-05-16T17:49:23.037 に答える