有没有人碰巧知道如何检测flash构建版本?
请注意这不是复制品。我问的不是播放器版本,而是build版本。意思是最后三位数字。也就是说,如果它是18.0.0.203 -那么我想要"203“。
谢谢!
发布于 2015-07-15 21:47:27
flash.system.Capabilities.version为您提供了所需的信息(内部内部版本号):
指定Flash Player或Adobe®AIR®平台和版本信息。版本号的格式为: platform majorVersion、minorVersion、buildNumber、internalBuildNumber。
var internal_build_number:int = flash.system.Capabilities.version.split(',')[3];
// gives : 203, for flash player 18.0.0.203编辑:
要使用JavaScript获取Flash Player的确切版本,您可以使用flash.external.ExternalInterface (如何使用它的here)将信息从Flash发送到JS。
因此,如果您是一名ActionScript程序员(否则您可以从here下载swf (1.24KB) ),那么您可以编写类似这样的代码:
ActionScript 3 :
// fn : the name of the js function which will get the flash version
// this name is passed by flash vars
var fn:String = this.loaderInfo.parameters.fn || 'console.log',
// WIN 18,0,0,203 => [18,0,0,203]
version:Array = Capabilities.version.split(' ')[1].split(',');
if(ExternalInterface.available){
// call the js function and pass to it the flash player version
ExternalInterface.call(fn, version);
}然后对于HTML部分:
JS :
function echo(version){
// for : version = [18,0,0,203]
// gives : internal build number : 203
console.log('internal build number : ' + version[3]);
}HTML :
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000">
<param name="movie" value="flash_to_js.swf" />
<param name="flashvars" value="fn=echo" />
<object type="application/x-shockwave-flash" data="flash_to_js.swf">
<param name="flashvars" value="fn=echo" />
</object>
</object>希望这能有所帮助。
发布于 2015-07-15 21:54:33
看起来the same question今天刚刚在Adobe论坛上发表了帖子。
function showFlashBuildNumber(){
var a = navigator.plugins;
var dllfname;
if (0 < a.length) {
for (var d = "", b = 0, g = a.length; b < g; b++) if (-1 != a[b].name.toLowerCase().indexOf("flash")) {
dllfname = a[b].filename;
}
}
var parts = dllfname.replace(".dll", "").split("_");
var buildnumber = parseInt(parts[4]);
console.log(buildnumber);
}它可以在win7、ie11和Firefox39上运行。
在Chrome上不起作用。可能是由内置播放器引起的..。
如果你想在闪存而不是JS端获取内部版本号,可以使用Capabilities.version来获取并修剪它。(这就是akmozo的答案)
发布于 2015-07-20 22:10:22
flashversionchecker.swf:
import flash.display.*;
import flash.external.*;
import flash.system.*;
public class fver extends Sprite {
public function fver():void{
super();
do {
} while (ExternalInterface.available == false);
try {
flash_version_js();
} catch(err:SecurityError) {
} catch(err:Error) {
};
}
public function flash_version_js():void{
var flashPlayerVersion:String = Capabilities.version;
var osArray:Array = flashPlayerVersion.split(" ");
ExternalInterface.call("as_flashver", osArray[1]);
}
}HTML和javascript:
<script type="text/javascript" src="swfobject.2.2.js"></script>
<div style="visibility:hidden; display:inline;" id="flashdiv"></div>
<script type="text/javascript">
swfobject.embedSWF("flashversionchecker.swf", "flashdiv", "1", "1", "9.0.0");
function frmt(sTT, z, s1) {
var i = 3-z.length;
sTT = sTT + z;
while (i-->0) sTT=sTT+" ";
sTT = sTT + s1;
return sTT;
}
var flash_version = "";
function as_flashver(v) {
var z = v.split(",");
flash_version = z[0] + "." + z[1] + "." + z[2] + "." + z[3];
console.log("Flash version (Full):" + flash_version);
console.log("Build Flash version:" + z[3]);
</script> https://stackoverflow.com/questions/31430353
复制相似问题