Adobe AIR NativeProcess Hello World

时间:2011-01-03 16:57:55

标签: air

我有以下内容:

<body>
<script>
var myAIRFile = new air.File('C:/Program Files (x86)/Windows NT/Accessories/Wordpad.exe');
var myProcess = new air.NativeProcess();
var myStartup = new air.NativeProcessStartupInfo();
myStartup.executable = myAIRFile;
myProcess.addEventListener(air.ProgressEvent.STANDARD_OUTPUT_DATA, myOutputData);
myProcess.start(myAIRFile);

function myOutputData(myEvent){
    alert('success!');
}
</script>
</body>

我添加了

<supportedProfiles>extendedDesktop</supportedProfiles>

到Application.xml,所以我知道支持NativeProcess。 但我得到了:

TypeError:错误#1034:类型强制失败:无法将flash.filesystem :: File @ 60dfdc1转换为flash.desktop.NativeProcessStartupInfo。

我知道C:/ Program Files(x86)/ Windows NT / Accessories / Wordpad.exe存在,因为我可以将其粘贴到资源管理器中。 也许我必须逃避斜线或其他事情。

2 个答案:

答案 0 :(得分:2)

您将文件传递给myProcess。我相信你需要通过myStartup。即,myProcess.start(myStartup)。

答案 1 :(得分:1)

再深入研究一下,我发现你将错误的参数类型传递给NativeProcess的start()方法

MyProcess.start()期望一个类型的参数:NativeProcessStartupInfo

参考:http://help.adobe.com/en_US/FlashPlatform/beta/reference/actionscript/3/flash/desktop/NativeProcess.html

所以你需要传递myStartUp变量。但我认为你需要首先将myAirFile传递给myStartUp的“可执行”属性。所以可能是这样的:

myStartup.executable = myAirFile;

myProcess.start(myStartup);

我还没有测试过这些。我将根据我阅读文档的方式进行讨论。