//Base.as
public class Base
{
private var _foo:String;
[Bindable]
public function set foo(value:String):void
{
_foo = value;
}
public function get foo():String
{
return _foo;
}
/*
Many many setter/getter, methods, events
*/
}
//Control.as
public class MyControl extends Group
{
public function MyControl()
{
}
}
//Window.as
public class MyWindow extends spark.components.Window
{
public function MyWindow()
{
}
}
//Module
public class MyModule extends spark.modules.Module
{
public function MyModule()
{
}
}
他のクラスの (フレンドリーな) 基本プロパティ、メソッド、およびイベントを公開したいと考えています。このようなもの:
var window:MyWindow = new MyWindow();
window.foo = 'Hello World!';
var module:MyModule = new MyModule();
module.foo = 'bar';
<namespace:MyControl foo="Hello World!"/>
各クラスのすべてのプロパティを定義したくありません。それらは多く、すべてのプロパティで同じだからです。
理想的には、次のように定義します。
public class MyControl extends Group, Base
{
public function MyControl()
{
}
}
(それができないことはわかっています。)
ありがとう!
更新: ありがとうございました!
たぶん、これは私のニーズをより明確にします...ビジネスレイヤーには、メニューからウィンドウに渡されるプロセスID(およびビジネスID、オペレーションID、ローカリティIDなど)と呼ばれる変数があり、ウィンドウはそれをモジュールに渡します。モジュール コンテナーでは、この変数をパラメーターとして使用してデータベースをクエリする CustomComponent があります。これは、モジュールのすべての (ほぼ) コンポーネントに適用されます。これらの変数はレベル ビジネス レイヤーとして定義されます。次に、これらの変数 (およびビジネス ロジックを使用してこれらの変数で動作するいくつかの関連メソッド) を格納および管理するためのクラスを定義します。私の共通のコンポーネント。アイデアは... 新しい CustomComponent を挿入し、次のように mxml を介してこれらの変数を設定します。
<custom:MyCustomComponent id="zzz" processID="{processID}" businessID="{businessID}"/>
モジュールには、変数を設定する (設定しない) ためのビジネス ロジックがあります。
それ以外の場合は、親の変数を読み取るために CustomComponent (およびモジュール) に別のロジックを実装し、これらの変数を MyWindow でのみ定義する必要があります (複合パターンを使用)。