0

私は as3 を学んでいて、Adobe オンライン チュートリアルからいくつかの演習を作成しています。私は非常に単純なタスクを実行しようとしていますが、私のコードはチュートリアルとまったく同じであり、機能していないと思います! 私はそれを解決することはできません...

そのボタンクラスからボタンのテキストフィールドを変更しようとしています。

ボタンは GameButton と呼ばれ、テキスト フィールドは blabel と呼ばれ、クラシック テキストとダイナミック テキストです。以下は GameButton クラスのコードです。以下のように「クリック」を表示する代わりに、ラベルを数字の 1 に変更するだけです。トレース ステートメントは機能していますが、そこに移動していますが、テキストは通過していません。助けてください!!!

パッケージ {

import flash.display.MovieClip;


public class GameButton extends MovieClip {


    public function GameButton() {
        trace("Gamebutton has been created");
        this.blabel.text = "Click";
        stop();

    }

}

}

4

1 に答える 1

0

要するに、コードでボタンを作成するか、子を追加している親オブジェクト (おそらくステージ、別の DisplayObjectContainer) からの追加されたステージ イベントをリッスンしてみることができます。リッスン メソッドの問題は、面倒なコードを作成せずに、どの子がイベントをディスパッチしたかを知る方法がわからないことです。最初のオプションは一般的に簡単で理にかなっていると思いますが、唯一の注意点は、オーサリング ツールを使用する代わりに、x/y 座標を使用してインスタンスを配置するか、scaleX、scaleY を適用してオブジェクトを伸縮する必要があることです。フラッシュのドラッグ アンド ドロップ部分を使用して、座標を把握し、個々のムービー クリップなどを作成することができます。

いくつかのコードについて十分に話してください:

package
{
    import flash.display.MovieClip;


    public class GameButton extends MovieClip {

        private var blabel:TextField; //This can be any display object class or a class that extends from a display object class (Sprite, MovieClip, MyCustomButton etc.)

        public function GameButton() {
            blabel = new TextField(); //The type after new, should be the same, or a sub-class (extension) of the type used in the variable declaration above
            addChild(blabel);

            //blabel.x=10; //optional over ten pixels from left
            //blabel.y=10; //optional down ten pixels from top
            //blabel.scaleX=.5; //optional half the width
            //blabel.scaleY=2; //optional 2 times taller

            trace("Gamebutton has been created");
            blabel.text = "Click";
            stop();

        }

    }
}
于 2013-06-28T18:35:57.070 に答える