加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

as类成员变量的特殊用法

发布时间:2020-12-15 05:12:18 所属栏目:百科 来源:网络整理
导读:看下面的示例代码: 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

看下面的示例代码:

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);
			
			
		}
	}
}



用符号[]来引用成员变量的用法在Flex框架中也出现。

比如:

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)“作为框架代码,如果谁都能读懂,岂不轻易被人复制”的考虑?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读