7

如何在运行时检查 flashPlayer 版本是否为 PepperFlash?

我想为pepperflash以不同的方式处理stage3d,而为标准的Flash播放器版本以不同的方式处理

更新:

我找到了一个 javascript 函数,所以如果有人可以帮助我使用 ExternalInterface 调用它:

var checkForPepper = function() {
if (navigator.plugins) {
    for (var i=0, count = navigator.plugins.length; i < count; i++) {
        var filename = navigator.plugins[i].filename;
        if (filename === 'pepflashplayer.dll' || filename === 'PepperFlashPlayer.plugin') return true;
    }
}
return false;
4

2 回答 2

1

只需更新您的答案以获得在 AS3 中更具可读性的 JS:

    var js:XML = <js>
        <![CDATA[
            function() {
                if (navigator.plugins) {
                    for (var i=0, count = navigator.plugins.length; i < count; i++) {
                        var filename = navigator.plugins[i].filename;
                        if (filename === 'pepflashplayer.dll' || filename === 'PepperFlashPlayer.plugin') 
                            return true;
                    }
                }
                return false;   
            }
        ]]>         
        </js>

        if(ExternalInterface.available)
        {
            var isPepper:Boolean = ExternalInterface.call(js);
            ExternalInterface.call("alert('isPepper = "+isPepper+"')");
        }
于 2013-07-02T11:00:06.647 回答
0

方法如下:

        _hasPepperFlash = String(ExternalInterface.call("function() {if (navigator.plugins) {for (var i = 0, count = navigator.plugins.length; i < count; i++){var filename = navigator.plugins[i].filename; if (filename === 'pepflashplayer.dll' || filename === 'PepperFlashPlayer.plugin') return true; } } return false;} "))

请注意,它必须在一行中,否则将无法正常工作。至少在我的 IDE IntelliJ 中

于 2013-07-02T10:58:59.830 回答