1

インスタンス化した後、ムクドリのオブジェクトにデータを送信することは可能ですか?
var mStarling:Starling = new Starling(StarlingClass, stage);

または、メインクラスからイベントをディスパッチしてから、スターリングクラスでこれらのイベントをリッスンしますか?

4

2 に答える 2

1

通常の表示オブジェクトとムクドリの表示オブジェクトの間でイベントを渡すことができるとは思いません。この背後にある主な理由は、すべてのStarlingディスプレイオブジェクトがGPUまたはむしろstage3dに描画されるという事実です。

Flashの通常のイベントは、ディスプレイリスト全体を移動します。stage3dはディスプレイリストの一部ではないため、stage3dオブジェクトがイベントをリッスンできるとは思いません。

同じことを達成するために、as3シグナルのようなオプションを検討することをお勧めします。as3信号はディスプレイリストの階層から独立しているため、これは機能するはずです。

于 2011-11-24T22:34:13.890 に答える
1

他のクラスと同じように、Starlingクラスでイベントを確実に聞くことができます。

たとえば、ムクドリのクラスでは、次のようなことができます。

this.addEventListener( "CustomEvent", PROCESS_METHOD );

次に、メインクラスで呼び出すことができます。

dispatchEvent(new Event("CustomEvent"));

値を渡したい場合は、mStarlingがアクセスできる動的オブジェクト(MovieClipなど)にイベントをアタッチする必要があります。または、new Event( "CustomEvent");の代わりにディスパッチできるEventを拡張するオブジェクトを実際に作成することもできます。

于 2011-11-07T20:06:02.207 に答える