2011-12-10 3 views
1

からTLFTextFieldにアクセスしたときに私はこの1つに迷ってしまいました。私は包みTLFTextFieldではなかったTXTをtxt.addEventListener(Event.ENTER_FRAME, init);を追加しようとしたFlash TypeError:エラー#1009:nullオブジェクト参照のプロパティまたはメソッドにアクセスできません。 - ドキュメントクラス

package { 

import flash.display.*; 
import fl.text.*; 
import flash.text.*; 
import flash.events.*; 
import flash.net.*; 

public class Main extends MovieClip { 

    private var _netConnection:NetConnection; 
    private var _responder:Responder; 
    /* some other public + private vars */ 

    public function Main() { 
     init(); 
    } 

    public function init(e:*=null):void { 
     _netConnection = new NetConnection(); 
     _responder = new Responder(uponResult); 

     txt.text = "init()"; 
    } 
    /* more functions */ 
    } 
} 

TypeError: Error #1009: Cannot access a property or method of a null object reference.出力メッセージに私のドキュメントクラスは(ActionScriptのない、IDEから追加された)のステージ上で、単純なテキストフィールドにアクセスしようとする最初の時間を受け取ります。..そこに...最初は、まだエラーを出力します。

私はちょっとばかばかしい気分ですが、予後の文書は何ですか? JB

+0

、この1つは魔法をした場合、私に教えてください。あなたはそのコードを投稿できますか? –

+0

txtは、actionscriptではなく、Flash IDE経由で手動でステージに追加されます。 –

+0

TXTがない場合、あなたはどちらか、それにイベントリスナーを追加することはできません...あなたは、ドキュメントクラスのEvent.ADDED_TO_STAGE上のinitを呼び出してみましたか? – weltraumpirat

答えて

2

TLFTextFieldは奇妙な生き物ですが、最近私は多くの問題を抱えています。

あなたがそれらにアクセスしようとするとTLFTextFieldsがステージ上に存在する必要があるため、私はEvent.ADDED_TO_STAGEイベントを使用して試してみた:

public function Main() { 
    addEventListener(Event.ADDED_TO_STAGE, init); 
}; 
public function init(e:Event):void { 
    removeEventListener(Event.ADDED_TO_STAGE, init); 
    txt.text = "init()"; 
}; 

あなたTLFTextFieldが上の最初のフレーム上にある場合、それが動作するはずですメインタイムライン。

は、それはあなたがあなたの `txt`を初期化する方法と場所によって異なり

ロブ

+0

、ロブ、おかげで親切!私を困惑 もうひとつは、彼らが選択可能または編集可能なときTLFTextFieldsがないときは、読み取り専用、正常に動作する唯一のように見えるということです。これはアクションスクリプトのバグですか、それとも正しく動作させるために余分なことをする必要がありますか? –

+0

TLFTextFieldはまだベータ版であり、残念なことにバグがたくさんあります。私はできるだけ多くのことを読んでみてほしいと言いたいと思います。あなたのコードに悩まされているなら、ここに戻ってください:) – robertp