检测flash构建版本
detect flash build verison
有人知道如何检测flash BUILD版本吗?
请注意这不是重复的。我问的不是玩家版本,而是构建版本。意思是最后3位数。也就是说,如果它是18.0.0.203 -那么我想要"203"。
谢谢!
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
(如何使用它在这里)将信息从Flash发送到JS。
如果你是一个ActionScript程序员(否则你可以从这里下载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>
希望能有所帮助。
似乎今天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端,但flash,它可以通过使用功能。版本和修剪。(这是akmozo的答案)
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>
相关文章:
- 我应该如何从xml文件构建一个javascript页面
- 如何在DOM元素上按类型构建此函数
- JS编译器/包管理器,用于版本控制
- jQuery-2.1.1.min.js或最新版本jQuery-2.13.min.js不会't支持'@
- Chrome加载旧版本的Javascript文件
- Sencha Touch构建-排除文件
- 如何使用js将SNAPSHOT内部版本号转换为3位数的整数
- RubyonRails——构建交互式接口应该朝哪个方向发展
- 为什么jQuery 1.8不能在IE8和InternetExplorer9中使用?(截至2012年9月的IE9最新版本)
- 如何设置jsfiddle's的javascript版本
- 如何在构建node-webkit应用程序后获取外部资源
- 如何为略有不同的不同版本的web应用程序构建代码
- 如何了解自定义构建的dojo的基本版本
- 是否可以在没有app.js的情况下创建一个extjs应用程序的js文件(如构建版本)
- npm无法构建socket.io并出现错误“;与您的node/npm版本不兼容:commander@0.5.0&”;
- 无法构建sencha应用程序,即使有正确的cmd和框架兼容的版本
- Ajax没有在framework7的构建版本中调用API
- CKEditor构建自定义版本
- AJAX构建和部署环境,特别是javascript和css min,完整版本
- 检测flash构建版本