0

我正在拔头发。

我有一个使用 ActionScript 3.0 和 Adob​​e AIR 2.7 的 Flash Professional CS6 项目。

我有一个非常重要的类,它使用 NativeProcess 与命令行可执行文件进行通信。当我在 Flash Professional 中调试程序时,它可以完美运行,但是一旦我将其打包为 Adob​​e AIR(扩展桌面配置文件),安装的程序将不会响应任何内容,因为它会默默地挂断此代码。它不会崩溃,它只是停止运行代码。

file = File.applicationDirectory.resolvePath("deepcore/" + module + ".exe");
startup.executable = file;
process.addEventListener(ProgressEvent.STANDARD_OUTPUT_DATA, addToBuffer);
process.start(startup);

当我注释掉startup.executable = fileandprocess.start(startup)时,它工作正常。

我已经检查并仔细检查了部署的版本是否支持 NativeProcess(NativeProcess.isSupported 返回 true。)

我所有的进口都正常工作。

为什么我的代码讨厌我?

4

1 回答 1

1

哈,好吧,我现在觉得有点傻。

您可能会注意到,我的路径位于应用程序目录中。在 Flash 中调试时,存在路径“deepcore/*.exe”(其中 * 是模块名称)。

但是,安装后,这不再起作用,因为已安装的应用程序目录中不存在该路径,并且没有提供非工作文件目录。

在发布设置中,我添加了 deepcore 文件夹,一切正常。(是的,我调整了代码以检查文件是否存在。)

于 2013-06-07T22:21:03.740 回答