AS3运行外部程序

时间:2015-06-27 17:35:07

标签: actionscript-3 external

所以我正在做一些有趣的事情,但我只是想知道是否有可能运行一个外部程序,例如打开Chrome(甚至可以搜索它),只需按一下按钮。

2 个答案:

答案 0 :(得分:1)

您应该可以通过包装.swf文件来启动外部程序。有多种方法可以做到这一点:

  1. 您可以将Flash用于create a projector,这样就可以将fscommand()与exec参数一起使用:fscommand("exec","/path/to/your/installed/Chrome");
  2. 您可以创建AIR应用程序并使用NativeProcess
  3. 使用第三方包装器(例如mProjectorzinc等)。
  4. 第一个选项应该最容易测试。请记住,此功能已经与各种版本的Flash一起出现。在旧版本的Flash中,您可以使用“文件”菜单中的“独立Flash播放器”和“创建投影仪”选项。只要你可以使用这个功能,这是最简单的,但你不会有很多选择。

    如果您计划对从as3启动的应用程序有更多控制权,请考虑使用AIR,因为您可以访问文件系统和进程。

    第三方工具现在可能已经过时,并且对于简单的应用程序启动可能会过度,但很高兴知道它们存在(如果您可能需要一些其他不受支持的功能)

答案 1 :(得分:0)

基本上,flash无法在没有AIR的情况下调用外部程序 但是如果这种情况允许使用ActiveX,则可以运行一些外部程序 不用说,它仅适用于IE。

JS代码

    function openChrome(url){
        wshshell=new ActiveXObject("WScript.Shell");
        wshshell.run("chrome.exe --new-window " + url);
    }
    function openExcel(path){
        wshshell=new ActiveXObject("WScript.Shell");
        wshshell.run("excel " + path);
    }

AS代码

ExternalInterface.call("openChrome", "http://www.google.com");
ExternalInterface.call("openExcel", "C:\\foo\\bar.xlsx");