首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检测闪存构建版本

检测闪存构建版本
EN

Stack Overflow用户
提问于 2015-07-15 20:26:09
回答 3查看 450关注 0票数 1

有没有人碰巧知道如何检测flash构建版本?

请注意这不是复制品。我问的不是播放器版本,而是build版本。意思是最后三位数字。也就是说,如果它是18.0.0.203 -那么我想要"203“。

谢谢!

EN

回答 3

Stack Overflow用户

发布于 2015-07-15 21:47:27

flash.system.Capabilities.version为您提供了所需的信息(内部内部版本号):

指定Flash Player或Adobe®AIR®平台和版本信息。版本号的格式为: platform majorVersion、minorVersion、buildNumber、internalBuildNumber。

代码语言:javascript
复制
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 :

代码语言:javascript
复制
// 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 :

代码语言:javascript
复制
function echo(version){  
    // for : version = [18,0,0,203] 
    // gives : internal build number : 203
    console.log('internal build number : ' + version[3]);  
}

HTML :

代码语言:javascript
复制
<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>

希望这能有所帮助。

票数 2
EN

Stack Overflow用户

发布于 2015-07-15 21:54:33

看起来the same question今天刚刚在Adobe论坛上发表了帖子。

代码语言:javascript
复制
    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的答案)

票数 0
EN

Stack Overflow用户

发布于 2015-07-20 22:10:22

flashversionchecker.swf:

代码语言:javascript
复制
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:

代码语言: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+"&nbsp;";
                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>  
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31430353

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档