·您当前的位置:首页 > 技术教程 > AS2与AS3技术 >

AS3中全局变量定义的方法

时间:2011-12-27 10:19CuPlayer.com
在AS2中只要用_global就可以了,可是在AS3中怎么办?在 AS 3.0 中已经没有这个概念了,把它们定义成一个类里的公开变量就OK

  在AS2中只要用_global就可以了,可是在AS3中怎么办?

  在 AS 3.0 中已经没有这个概念了,把它们定义成一个类里的公开变量就OK!

  1. public class GlobalConstant  
  2. {  
  3. public static var req:URLRequest = new URLRequest("6.mp3");  
  4. 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的原型链上去,
这样可以使用严格类型声名并且方便管理.
 

热门文章推荐

请稍候...

保利威视云平台-轻松实现点播直播视频应用

酷播云数据统计分析跨平台播放器