0

髪を引っ張っています。

ActionScript 3.0 と Adob​​e AIR 2.7 を使用する Flash Professional CS6 プロジェクトがあります。

NativeProcess を使用してコマンドライン実行可能ファイルと通信する非常に重要なクラスがあります。Flash Professional でプログラムをデバッグしているときには問題なく動作しますが、Adobe AIR (拡張デスクトップ プロファイル) 用にパッケージ化するとすぐに、インストールされたプログラムは何も応答しなくなります。クラッシュするのではなく、コードの実行を停止するだけです。

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

と をコメントアウトするstartup.executable = fileprocess.start(startup)、正常に動作します。

デプロイされたバージョンが NativeProcess をサポートしていることを再確認しました (NativeProcess.isSupported は true を返します)。

すべてのインポートが正常に機能しています。

私のコードが私を嫌うのはなぜですか?

4

1 に答える 1

1

ははははは、ちょっとばかげている気がします。

お気づきかもしれませんが、私のパスはアプリケーション ディレクトリ内にあります。Flash でデバッグする場合、パス「deepcore/*.exe」が存在します (* はモジュール名です)。

ただし、インストール後は、インストールされたアプリケーション ディレクトリにパスが存在せず、非作業ファイル ディレクトリが用意されていないため、これは機能しなくなります。

パブリッシュ設定で、deepcore フォルダーを追加したところ、すべて正常に機能しました。(そして、はい、ファイルの存在を確認するようにコードを調整しました。)

于 2013-06-07T22:21:03.740 に答える