2012-04-15 6 views
0

私は、描画する場所を作成することに関連した私の新しいプロジェクトに外部ASファイルを使用していますので、必要なものについて基本的な考え方を得るために以下のtutorialを使用しました。AS3別のフレームにクラスをインポートする

私はプリロード&メニューに追加したいことを決めたまで、私は希望のアプリケーションの作業と円滑な稼働を得た - 第3のフレームでアプリの描画部分を入れて - 私は、このエラーを得た:

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

だから私は、プロパティの下にクラスにMain.asを追加するのではなく、代わりにフレームにファイルをインポートすると思った。使用:

var main:Main = new Main(); 
addChild(main); 

これは、インスタンス名へのすべての接続が失われていることを除いて、これは機能しました。

Line 64 1120: Access of undefined property pencil. 
Line 65 1120: Access of undefined property eraser. 
Line 65 1120: Access of undefined property txt. 
Line 82 1120: Access of undefined property board. 
Line 83 1120: Access of undefined property board. 

その他、各種.....

それでは、私が知りたいのですが、これをやって、それがどのフレームに取り組んで取得する良い方法はありますか?

外部スクリプトまたはフレームへの別のインポート方法で何かを変更することによって?

は、問題が名前付きインスタンスは、通常のステージの最初の子であるMainTimelineインスタンスのプロパティであるということである

イーライ

答えて

1

ありがとうございます。プロパティは、Mainクラスのでなく、のプロパティです(これ以上)。

あなたはMainとからこれらのプロパティにアクセスしたいときに、あなたのような何かができる:

var timeline:DisplayObject = stage.getChildAt(0); 
var pencil:DisplayObject = timeline["pencil"]; 

// do stuff with 'pencil' 
pencil.x = 500; 
... 

注:これはMainは一度ケースである必要があり、そのstageプロパティセットを持つことになりますと仮定しaddChild(main);で追加しました。しかし、これは、Mainのコンストラクタでは、まだ上記を行うためにstageプロパティにアクセスすることができないことを意味します。これが問題の場合は、Mainに「연필」などを使用する前にADDED_TO_STAGEイベントを待つことを検討してください。

関連する問題