検索して検索しましたが、答えが見つかりません。実際、私が読んでいるすべてのことは、私がそれを正しく行ったという事実を示しているようですが、それは単に機能していません。
私はWebマッピングアプリケーションに取り組んでいます。すべてのmxmlファイル(ウィジェット)で使用できるSelectionManagerクラスを作成したいと思います。重要なのは、マップからコンテンツを選択する複数のウィジェットがあり、ウィジェット間でイベントを送受信するのではなく、すべての情報を保持する単一のクラスが必要なことです。
今、私はこのようなものを試しました:
package SomePackage.utils
{
public class SelectionManager
{
public static var _selectionSets:ArrayCollection = new ArrayCollection();
public static var _currentSelectionSet:Object;
(Many static functions... ex: AddToCurrentSelectionSet, removeFromCurrentSelectionSet, CreateNewSelectionSet, etc.)
}
}
_selectionSetsは、オブジェクトのarrayCollectionです。_currentSelectionSetは、_selectionSetsarrayCollection内のオブジェクトの1つを保持します。たとえば、BufferSelectionSetとQuerySelectionSetがあります。バッファウィジェットを開くとき、_currentSelectionSetが_selectionSets配列コレクションからの適切なselectionSetを保持するようにします。このように、Bufferwidgetを開いたときに何かをクリックすると、適切な選択セットに追加されます。
現在、両方のウィジェットがSelectionManagerクラスをインポートしていますが、インスタンス化はしていません。何が起こるかというと、同じ静的変数を持つ同じSelectionManagerを持つことを期待していたのに、両方のウィジェットが異なるSelectionManagerを保持しているように見えるということです。
たとえば、バッファウィジェット内からcurrentSelectionSetを設定すると、ArrayCollectionのオブジェクトに設定されていることがわかります。しかし、クエリウィジェットからcurrentSelectionSetを見ると、nullになります。
十分に明確かどうかはわかりませんが、必要に応じて詳細をお知らせします。私が言ったように、私は見たが成功しなかった。さらに、私はFlexとAS 3.0の初心者ではなく、他のプログラミング言語でかなりの経験があります。私はこれに完全に困惑しています、多分それはちょうど長い日でした。
助けてくれてありがとう。
追加情報:
私のウィジェットは、utilsパッケージと並行するパッケージに含まれています。つまり、SomePackage.Widgetsです。