2015-06-27 64 views
0

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

+0

你到底要在Chrome浏览器做什么?它是否必须专门用于Chrome浏览器,或者您是否想在浏览器中打开网站? – null

回答

1

你应该能够通过包装你的.swf文件来启动一个外部程序。有倍数的方法来做到这一点:

  1. 您可以使用Flash来create a projector这将允许使用fscommand()使用exec参数:fscommand("exec","/path/to/your/installed/Chrome");
  2. 您可以创建一个AIR应用程序和使用NativeProcess
  3. 使用第三方包装(如mProjectorzinc等)

第一个选项应该是最容易测试的。请记住,该功能已经与各种版本的Flash一起出现。在较旧版本的Flash中,您可以使用File Menu中的Standalone Flash Player和Create Projector选项。只要你可以使用这个功能,这是最简单的,但你不会有很多选择。

如果您打算对从as3启动的应用程序拥有更多控制权,请考虑在您访问文件系统和进程时使用AIR。

的第三方工具可现在已经过时和一个简单的应用程序启动可能是矫枉过正,但它的好,知道他们在那里(的情况下,你可能需要一些其他不受支持的功能)

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");