1

私はFlash/ActionScriptを初めて使用し、一部のシンボルのカスタム基本クラスを作成するのに少し問題が発生しました。

いくつかの惑星を含むフラッシュファイルがあり、各惑星に関する情報を保存したいので、各惑星の最低気温や最高気温などを含むPlanetクラスをactionScriptファイルに作成しました。

メインのフラッシュファイルには、カスタム画像を使用して惑星ごとに作成されたシンボルがあり、惑星ごとに異なるアニメーションがあります。私がやりたいのは、これらの各シンボルのクラスを惑星に設定することです。元々、ライブラリのリンケージを惑星に変更するだけでこれを行いましたが、これは1つのシンボルに対してのみ機能し、別のシンボルに変更すると機能しなくなりました。 、同じクラスに設定することはできません。そこで、右クリックしてプロパティに移動し、「export for actionscript」を設定してから、クラスに「Mercury」または「Venus」という名前を付け、基本クラスをPlanetに設定しました(planet extends movieclip)。金星が見つからないとしても、エクスポート時に生成されることを保証します。コマンド+Enterキーを押すと、次のコンパイル時エラーが発生します。

../Main.as, Line 9  1046: Type was not found or was not a compile-time constant: Venus.

..Main.as, Line 31  1046: Type was not found or was not a compile-time constant: Mercury.

1つのクラスだけで動作している場合、デフォルトのコンストラクターを使用してPlanetのインスタンスを作成し、Mainメソッドでそのクラスの「initialize」関数を呼び出します。これにより、インスタンス変数とイベントハンドラーを設定できます。後で使用するため。フラッシュコールを作成して、他のシンボルを1つにまとめることなく、他のシンボルのPlanetのインスタンスをさらに作成する方法を知る必要があります。

ヒントをいただければ幸いです。ありがとう。

4

1 に答える 1

1

あなたの質問は少し紛らわしいものでした。ただし、基本クラス「Planet」を作成し、MercuryやVenusなどの他のクラスにプロパティを継承させたいようです。ここから、Plantを基本クラスとして使用するようにライブラリシンボルを設定できます。これを行う方法は次のとおりです。

基本クラス:

package
{
    import flash.display.MovieClip;

    public class Planet extends MovieClip
    {
        // vars
        public var temperature:Number;
        public var radius:Number;
    }
}

実際の惑星のクラス(惑星ごとに1つ必要):

package
{
    public class Venus extends Planet
    {
        /**
         * Constructor
         */
        public function Venus()
        {
            // set properties here
            temperature = 900;
            radius = 12.93;
        }
    }
}

これらのファイルを作成すると、すべて正常に機能するはずです。

于 2011-05-01T04:36:48.897 に答える