2016-05-14 12 views
1

私が作業している.flaファイルのシーン/ MovieClipを表すChestSceneというクラスがあります。私は、コードが付いたオブジェクトを適切に使用する方法の根本的な誤解に根差しているような問題が数多くありました。ステージにオブジェクトを追加すると自動的にインスタンス化されるので、今私がしようとしていることは、インスタンス化して、私のMainメソッドのコンストラクタのステージChestScene()に追加することだけです。 メインに追加されたクラスの#1009エラーを修正するには?

public class Main extends MovieClip { 

    var chest:Chest = new Chest(); 

    public function Main() { 
     stage.addChild(chest); 
    } 

しかし、私はこのエラーを取得する:私は、このような単純なものだろうと思った胸のヌルである理由

TypeError: Error #1009: Cannot access a property or method of a null object reference. 
    at Chest()/startScene() 
    at Chest() 
    at Main() 

だから私の最初の質問はありますか?オブジェクトは私のフラにあります。ライブラリからドラッグしてステージに追加すると、クラスは意図したとおりに動作します。 addChildは私が同じ方法で使用している他のオブジェクトで動作するように見えるので、なぜこのオブジェクトで使用できないのかわかりません。

メインメソッドを使用してオブジェクトをインスタンス化し、そのオブジェクトのプロパティをステージに対して相対的に変更する方法を教えてください。そして、私の最初のオブジェクトの中に入れ子にされたオブジェクトに対して同じことをどうやって行うことができますか?

*****答えた後に編集お返事のため、どのようにデバッグメッセージを読むために私を教えるため

感謝。

stage.addEventListener(Event.ENTER_FRAME, gameLoop) 

段階を削除すると、そのエラーを修正したオブジェクトにリスナーを追加し、賞賛ので:startScreenは()これがあった確かに犯人、および問題でした!しかし、私はまだ混乱しています。ステージにリスナーを追加しようとすると、nullエラーが発生するのはなぜですか?なぜこの段階でステージがヌルになるのか分かりません。また、「スタッグ」を取り除く。 addEventListenerから、シーンを保持するフレームのサイズが小さくなり、多くの画像が切り取られました。イベントリスナーが私のstageWidthとheightに影響するのはなぜですか?このため、ステージの幅と高さに関連して物を正確に配置する方法については、エラーと関係があることがわかっているので、私は質問しました。

+0

実際には大きすぎる「*私は*これは大きな問題であると認識」: は一般的に、それは単にオブジェクトではなくstageに追加bad practice to add things to stage as can be read in the documentation of addChild()

です。この質問の#1009を扱ってみましょう。別の質問でスケーリングに関連する質問をしてください。 – null

+0

エラーを誤解しています。それは、胸がヌルであるとは言わないが、メソッドstartSceneの中の何かが、私が推測しているヌルであると言うのは、あなたがその時点でヌルである 'stage'を参照しているからです。 – BotMaster

+0

私が言ったように、スケーリングとサイジングの問題に関する別の新しい質問を作成してください。問題を1つの問題に限定して小さくしてください。この質問の問題は、あなたがエラーを受け取った理由でした。より多くの質問をすることを恥ずかしくないでください。このサイトでは奨励されています。このサイトは、すべての問題を1つの大きな混乱で解決することについてのものではありません。 – null

答えて

0

why is Chest null?

Chestnullではありません。これはクラスのコンストラクタであり、nullにはできません。

エラーに添付されたスタックトレース(メッセージの下の "at ..."が付いた行)に注意する必要があります。 エラーがどこで発生したかを示します。ボトムアップから読むと、実行されたメソッド呼び出しの順序がわかります。

TypeError: Error #1009: Cannot access a property or method of a null object reference. 
    at Chest()/startScene() 
    at Chest() 
    at Main() 

Main()Chest()startScene()BOOMと呼ばれる、Chest()と呼ばれます!これはエラーが発生した場所です。

このエラーをデバッグするには、startScene()を参照してください。そこにあるものはnullです。

あなたの現在のコードを見て:私はあなたにもChest()stageに何かを追加しようとしていることを推測

stage.addChild(chest); 

。ただし、stageChest()には(null)はありません。

addChild(chest); 
+0

@pocketrocketsコメントにコードを追加せず、質問を編集して追加情報を追加してください。 – null

関連する問題