0

最新のプロジェクトで Robert Penner の Signals を使用しています。それはうまくいきます。

https://github.com/robertpenner/as3-signals

ここで、シグナル hal が過去のどこかですでにディスパッチされたことを知る方法が必要です。たとえば、完全にロードされたときにシグナルをディスパッチするクラスがありますが、イベントがすでにディスパッチされている場合にのみ一部のメソッドを機能させるには、同じクラスにフラグが必要です。

したがって、迅速かつ迅速な解決策は、イベント ハンドラーにブール値を追加することです。

isLoaded = true;

しかし、私が使用できる Signal クラスに既に実装されているものがあるのではないかと思います。

4

2 に答える 2

2

Penner のオリジナル クラスに RelaxedSignal クラスを追加しました。それらは彼のコードベースにマージされていません。理由はわかりませんが、何度か彼に尋ねましたが、彼は反応しません。

とにかく、すでにディスパッチされているシグナルをサブスクライブすると、すぐにサブスクライバーのリスナーが呼び出されます。私はこれを、あなたのような、すでに起こっているかもしれないし、起こっていないかもしれないイベントに応答したいという状況のために、特に作成しました.

シグナルは素晴らしいものですが、欠けている機能が 1 つあります。それは、シグナルがディスパッチされた後にサブスクライブする機能です。

説明: http://creynders.wordpress.com/2011/10/06/relaxedsignals/

ソース: https://github.com/creynders/as3-signals

例: https://github.com/creynders/RelaxedSignalsDemo

于 2012-12-04T11:39:31.760 に答える
1

クラスにブール値を追加すると思いますが、これを信号に依存させるべきではないと思います。後で通常のイベントに変更してから、失敗する可能性があります。isLoadedブール値は、シグナル/イベントではなく、ローダーの一部である必要があります。

于 2012-12-03T19:33:50.797 に答える