2

ActionScript でオブジェクトを作成する方法を学ぼうとしても、うまくいきませんでした。私が気づいたことの 1 つは、それを行うには 10 億通りの方法があるように見えるということです。それらのどれも私のために働いていなくても。これは本当に私を混乱させます。どのアプローチをデバッグしようとしているのかわかりません。

最も頻繁に出てくると思われるアプローチは次のとおりです。

関数 myClass() {
   this.val = 1;
}

var test = new myClass();
トレース (test.val);

しかし、これは、どんなに単純化してもコンパイラ エラーが発生するだけであり、関数がオブジェクトである可能性があることは意味がありません。関数がオブジェクトの場合、関数内の関数内にある場合 (オブジェクトとして解釈されている場合)、「this」はどこを指しますか。

あまり頻繁に出てこないように見える別の方法は次のとおりです。

クラス myClass {
   関数 myClass() {
       this.val = 1;
   }
}

変数テスト = ....

これにより、コンパイラエラーも発生し、より正式に見えます。しかし、比較可能なドキュメントはほとんど見つかりません。ほとんどのガイドは非常に単純であるか、組み込みオブジェクトについて話していることを前提としています。

思いついた 3 番目の方法は、

新しいオブジェクト();
関数で、必要なものをすべて追加して返します。論理的に思えます。しかし、私はプロトタイプについて言及しているあらゆる種類のものを読みましたが、この方法で作成されたオブジェクトはプロトタイプには適していないようです。しかし、実際には私は非常に混乱しています。

また、AS2 と AS3 では Object の構文が異なるということもありましたが、それ以上のことはありませんでした。

オブジェクトを作成するにはどうすればよいですか? ベスト プラクティスとは何ですか。念のため、詳細なチュートリアルをどこで見つけることができるか知っている人はいますか? (私のgoogle-fuは明らかに弱いです)

4

1 に答える 1

5

AS2 と AS3 のクラス構文は実際には異なります。AS3 の場合、構文は次のようになります。

package somePackage {

    public class SomeClass {
        public function SomeClass() {

        }
    }
}

説明として、パッケージは複数のクラスを含むことができるラッパーであるため、各クラス定義を含むパッケージを宣言する必要があります。

クラスにはコンストラクター関数が必要です。ほとんどの言語では、コンストラクター関数の名前はクラスの名前と同じです。これは、ActionScript の場合です。

クラスのインスタンスを呼び出すには、次のようになります。

package somePackage {

    public class OtherClass {
        public function OtherClass() {
            var something = new SomeClass();
        }
    }
}

AS3 リファレンスが目の前にあるので、上記のコード スニペットにはかなり自信がありますが、残念ながら AS2 リファレンスは機能していますが、コードは次のようになります。

class ThirdClass {
    public function ThirdClass() {

    }
}

そして、変数をインスタンス化するには、次のようになります。

var third = new ThirdClass();

提供されている例では、強い型付けを使用していないことに注意してください。ActionScript の作業で可能な限り使用することをお勧めします。

Essential ActionScript 2.0および/またはEssential ActionScript 3.0のコピーを選択することを強くお勧めしますが、チュートリアルを開始するための次のリンクを見つけました。

Flash および ActionScript チュートリアルの開始

その他の初心者向けチュートリアル

于 2008-11-12T04:04:03.973 に答える