//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()
{
}
}
(我知道这是不可能的。)
谢谢!
更新: 再次感谢!
也许这更能说明我的需求......在业务层上,我有一个名为 processID 的变量(以及 businessID、operationID、localityID 等),它从 Menu 传递给 Window,然后 Window 将其传递给 Module。在 Module Container 上,我有一个 CustomComponent 使用此变量作为参数查询数据库。这适用于模块上的所有(几乎)组件。这些变量被定义为级别业务层,然后我定义了一个类来存储和管理这些变量(以及使用业务逻辑与这些变量一起操作的一些相关方法),因此我可以为每个环境创建一个独立的类(或库)以重用我的常用组件。这个想法是......插入一个新的 CustomComponent 并通过 mxml 设置这些变量,如下所示:
<custom:MyCustomComponent id="zzz" processID="{processID}" businessID="{businessID}"/>
模块具有设置(不)任何变量的业务逻辑。
否则,我将不得不为 CustomComponent(和模块)实现不同的逻辑以读取父级的变量,并仅在 MyWindow 中定义这些变量(使用复合模式)。