2004/09/28 | FlashAS——精要
类别(Flash进修) | 评论(0) | 阅读(282) | 发表于 19:07
来自闪吧之ox_thedarkness,原贴

如何在内部监测版本?
System.capabilities.version 会返回一个字符串,比如: "win 7,0,14,0" 或者 "win 6,0,32,0"
假如用户是window操作系统,我们可以使用下面的语句得到主版本号:

var version = System.capabilities.version.slice(4,5);
if(version == 6) trace( "FlashMX" );
if(version == 7) trace( "Flash2004");

这里用到函数String.slice( from,to) ,他的作用返回string 从from到to之间(不包括to)的字符。比如 "012345".slice(3,5) 返回"34"

我们可以在你的flash初始化的时候检查版本,并且根据不同的版本绑定不同的函数。
比如,2004里面有一个新系统函数 MovieClip.getNextHighestDepth(),他的作用是得到某一个mc的最高的未使用深度。我们往往用这个函数动态加载mc。但是,使用了这个函数意味着不兼容flash6。
那么如何同时在mx 和2004中使用呢? 如果发现用户用的是flashplayer6,我们就自己添加一个getNextHighestDepth函数。

//-----------------------------------------------------------------------
var version = System.capabilities.version.slice(4,5);
if(version == 6) {
MovieClip.prototype.depthNow=1000; //避免一般冲突
MovieClip.prototype.getNextHighestDepth = function(){
return this.depthNow++;
}
}
//-----------------------------------------------------------------------

0

评论Comments