as类成员变量的特殊用法
看下面的示例代码: package { import flash.display.Sprite; import flash.text.TextField; public class startClass extends Sprite { private var str:String; public function startClass() { this["str"] = "aaa"; var txt:TextField = new TextField(); txt.text = str; addChild(txt); } } }
比如: 在mx.managers.SystemManager中定义了如下成员变量: mx_internal var childManager:ISystemManagerChildManager; ? 该变量是在mx.managers.systemClasses.ChildManager的构造函数中,按照上面的例子的形式为其赋值的: public function ChildManager(systemManager:IFlexModuleFactory)
{
super();
if (systemManager is ISystemManager)
{
systemManager["childManager"] = this;
this.systemManager = ISystemManager(systemManager);
this.systemManager.registerImplementation("mx.managers::ISystemManagerChildManager",this);
SystemManager的该childManager成员变量的访问属性不是Public,因此,在ChildManager类中无法通过SystemManager.childManager=XXX的形式为其赋值。 systemManager["childManager"] 是动态的表现形式,在编译期不受检查。
分析Flex框架源代码,感觉类之间的关系被设计的过于复杂(你中有我,我中有你)。 再加上使用了事件机制对程序执行顺序加以控制,使得通过源代码来理解Flex框架的执行顺利变得很困难(思路在不同代码程序片段直接跳来跳去)。 代码可读性不好。 作为在实际项目应用中,需要经常被扩展的UI框架,理应被设计的更好些,更容易被理解才行。 ? 也许是: (1)框架开发没有严格的规范(欧美项目开发的特征?) (2)“作为框架代码,如果谁都能读懂,岂不轻易被人复制”的考虑? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |