2012-03-28 15 views
0

私はクラスPersonを持っています。つまり、名前と年齢のPersonの定義です。 SuperClassはメインクラスです。 FlashドキュメントのtextBoxに名前と年齢を表示したい。ActionScriptのクラス構造

私はフラッシュに初心者です。クラス構造やコーディング規則に問題があります。これは、 "定義されていないメソッドaddChildを呼び出す"というエラーを出します。

答えて

2

あなたのPerson Classはデータオブジェクトであり、View操作を実行しようとすべきではありません。だから、

:あなたが動作するように上記のコードのためのPerson変数をパブリックにする必要があります

protected var p1:Person; 
protected var tf:Textfield; 

public function SuperbClass() { 
    p1 = new Person('Brenda', 30); 
    tf = new TextField(); 
    tf.text = p1.name + ' is ' + p1.age + ' years old.'; 
    addChild(tf);//SuperBClass extends Sprite, so this works 
} 

注意。あなたはこのように呼びたい

public function get info():String { 
    return name + ' is ' + age + ' years old.'; 
} 

​​
+0

良い説明別の方法として、あなたは文字列全体を返し者にゲッターを作成することができます。 –

+0

別のgetter public関数get name:String {return name;}を追加した場合。なぜそれは動作しません? –

+1

あなたのコードを見ることなく言うのは難しいですが、プライベート変数の名前がゲッター関数と同じであれば、それは機能しません。これは、多くの人々が大会の問題として(例えば_name)、自分の私的な変数名の前に "_"を付けることを選択する理由です。 –

0

あなたのPersonクラスは、MoviClipやSpriteなど、addChildメソッドを持つものを拡張する必要があります。