0

正確にはわかりませんが、私の問題は変数の宣言方法に関係していると思います。

以下のコードは AS3 で合法ですか?

    var fish1:Fish = new Fish;
    var fish2:Fish = new Fish;
    var fish3:Fish = new Fish;
    var fish4:Fish = new Fish;
    addChild(fish1);
    addChild(fish2);
    addChild(fish3);
    addChild(fish4);
    fish1.x = 0;
    fish2.x = 150;
    fish3.x = 300;
    fish4.x = 450;

addChild の各行で次のようなコンパイラ エラーが発生します。

Main.as、14 行目 1180: 未定義のメソッド addChild を呼び出します。Main.as、14 行目 1120: 未定義のプロパティ fish3 へのアクセス。

そして、魚の x 座標を指定しているすべての行で、次のようなコンパイラ エラーが発生します。

Main.as、15 行目 1120: 未定義のプロパティ fish4 へのアクセス。

fish 変数は Fish 型で、.fla ファイルのライブラリで定義しました。よろしくお願いします!

4

1 に答える 1

1

あなたのクラスは、何らかの形式の DisplayObjectContainer をサブクラス化する必要があります。その中で、MovieClip と Sprite が 2 つの可能な選択肢です (確認してください)。

しかし、本当の問題は、タイムライン コードのようにクラス コードを書いていることだと思います。おそらく厳密モードがオフになっていると思います。そのため、AS3 に精通している人なら誰でも (おそらくあなたではないかもしれませんが)、コードがより

    class Main extends Sprite {
       public var fish1:Fish = new Fish();
       public var fish2:Fish = new Fish();
       public var fish1:Fish = new Fish();
       パブリック関数 Main() {
          addChild(fish1);
          addChild(fish2);
          addChild(fish3);
          //このがらくたを入力するつもりはありません。
          // コードの配置 (および addChild) は時間の無駄です。
          //それがステージの目的です!
       }
    }
于 2013-03-29T19:48:49.963 に答える