2016-10-13 00:16:48 点击量:15 标签: 收藏本文
在AS2中只要用_global就可以了,可是在AS3中怎么办?
在 AS 3.0 中已经没有这个概念了,把它们定义成一个类里的公开变量就OK!
- public class GlobalConstant
- {
- public static var req:URLRequest = new URLRequest("6.mp3");
- public static var sound_:Sound = new Sound(req);
- }
在别的类里直接GlobalConstant.req
另类方法,未验证:
我想到了在AS3中使用全局变量的方法:
[b][color=Red][code]Stage.prototype.var1 = 'Stage-var1'[/code][/color][/b]
原理是:
1.使用:
%类名.prototype.%成员名 = %值
的方法在原型链上添加成员,
然后就可以通过
%类名.prototype.%成员名
%类实例.[%成员名]
这两种方法之一即可访问这个静态成员.
2.我们同时又知道SWF文件在执行时总是有一个Stage的实例存在的,
并且访问到他很容易(任何一个加入DisplayList的DisplayObject的stage属性即是对他的引用).
由以上两点可得:
使用Stage.prototype.%成员名给Stage类添加一个静态成员,
然后就可以在随便什么地方访问那个成员,
这个成员就跟全局变量的作用范围没什么两样了.
扩充话题:
如果你需要很多全局变量,
建议你专门写一个具有你所需变量的类,
然后给他加到Stage的原型链上去,
这样可以使用严格类型声名并且方便管理.
我们是一家提供综合软件外包与弱电工程服务的技术公司。
业务涵盖定制软件、管理系统、网站、小程序、APP、系统集成、网络布线、监控安防、门禁、机房建设及长期技术维护。
公司地址:湖北省宜昌市伍家岗区东站二路6号三峡(宜昌)大数据产业园海洋馆二楼A203室