0

actionscript 内のオブジェクトのさまざまな論理インスタンス化を拡張して明確にすることはできますか? これまでのところ、より適切な用語がないため、インスタンス化には 3 つの層があるようです。

最初のものは、変数/型を宣言しています。

次は、メソッドや関数など、コード内の何かしっかりしたものを使用してその変数をインスタンス化しますか? これは、物事を接着するための単なる方法ですか?

その後、ステージ上でインスタンス化しますが、これは明示的に行う必要があるものですか、それとも副作用ですか?

この「3 レイヤー」の概念は、フラッシュ アプリ ロジックの MVC のような、正しい見方ですか?

4

2 に答える 2

0

オブジェクトを変数に割り当てずにインスタンス化できます...オブジェクトへの参照を変数に格納する代わりに、オブジェクトを引数として関数に直接渡すか、他のオブジェクトをパラメーターとしてコンストラクターに渡すことができます、これにより、オブジェクトは他の場所に自分で登録できるようになります...たとえば、このコードは完全に機能します。

(new URLLoader(new URLRequest("someURL"))).addEventListener(Event.COMPLETE, someEventHandler);

このコードは2つのオブジェクトをインスタンス化しますが、いずれも変数に格納されていません...

したがって、インスタンス化は変数とはまったく関係ありません。つまり、「最初のステップ」がインスタンス化プロセスの一部ではない理由です...オブジェクトのインスタンス化はnew SomeClass(someParam_1,...someParam_n)...

Epskampieが指摘したように、「3番目のステップ」もインスタンス化の一部ではありません。これは、 DisplayObjectsでのみ機能するためです。これは、「ステージ上でインスタンス化」ではなく、「ディスプレイリストに配置する」ことです。 。また、ほとんどの場合、ステージ自体ではなく、ステージの(孫)子供にそれらを配置します...また、単にDisplayObjectディスプレイリストに表示しないことを決定することもできます(いくつかのシナリオがあります。検出) ...

そうそう、私は「レイヤー」については話しません...あなたが説明するのはDisplayObject、3つの「ステップ」(最初はオプション)で構成され、「レイヤー」ではない、ディスプレイリスト上にを作成するための可能なアプローチです。 。そしてMVCに類似するものはありません...フラッシュDisplayObjectはビューを作成するためのベースです...ActionScriptのMVCは他の言語とほとんど同じように機能します...モデル、コントローラー、ビューオブジェクトを他の言語と同じように作成します他の言語...インスタンス化はすべて同じですが、後者の場合、それらを表示するために追加の手順が必要です...

それが役立つことを願っています...

グリーツ

back2dos

于 2009-07-29T00:28:51.357 に答える
0

「通常の」オブジェクトと、DisplayObject を拡張してステージに追加できるオブジェクトを混同していると思います。

すべてのオブジェクトを宣言してインスタンス化する必要があると仮定するのは正しいです。

DisplayObject を拡張している場合は、たとえば、次を使用してステージに追加できます。

stage.addChild(new ObjectName());

これを MVC 環境に適用するには、コードの View 部分で DisplayObjects を使用するだけです。

于 2009-07-28T23:51:07.120 に答える