2

AIR アプリケーションを作成するつもりでしたが、外部アプリケーションを実行する必要があり、Adobe AIR のセキュリティ制限のために... System("file実行する"); それから Alchemy を使用してそれを swc に変更し、それを私のアプリケーションで使用します... 誰かがこの種のことを試しましたか、それともうまくいくと思いますか?

4

3 に答える 3

8

Alchemy について理解する必要があるのは、C を actionscript と同じバイトコードにコンパイルし、flash/flex as3 アプリケーションと同じ仮想マシン (AVM2) で実行することです。

Alchemy が一部の操作で高速になる理由は、コンパイルされた C (バイトコードにコンパイル) が、フラッシュ 10 で追加された最適化された AVM2 命令を介して生の「メモリ」(ApplicationDomain.domainMemory) にアクセスできるためです。

私が理解しようとしているのは、Alchemy は単に AVM2 の上で実行されるため、他のアプリケーションと同じように制限されるということです。AIR アプリケーションの Alchemy は、ブラウザー サンドボックスの Alchemy よりも多くのことを実行できますが、そのサンドボックスによって制限されます。

本当に外部アプリケーションを実行する必要がある場合は、ShuZincなどを調べる必要があります。

申し訳ありませんが、これ以上お役に立てませんでした。

于 2009-01-31T20:42:09.090 に答える
1

これは機能しません。Alchemy は、外の世界と対話するプログラムには実際には適していません。システム コールの実行はサポートされないと思います。Alchemy がサポートしていたとしても、flash/air ランタイムは確実にそれをブロックします。

クロスプラットフォームの動作が必要ない場合は、昔ながらの「プロジェクター」の作成を検討できます。fscommand を使用してプロジェクター exe からプログラムを起動することは可能です。ただし、起動する実行可能ファイルは、バイナリの隣にある fscommand という名前のフォルダーに配置する必要があることに注意してください。それでも不十分な場合は、http://www.northcode.com/などのサードパーティの商用ツールを試すことができます。

于 2009-01-31T20:43:01.693 に答える
0

いいえ、Richard Szalay の正解です。Alchemy は C コードを ActionScript バイトコードにコンパイルするため、結果として得られる SWF には、他のものと同じサンドボックスの制限が適用されます。AIR の制限は緩和される可能性がありますが、Alchemy を使用してもその点では何のメリットもありません。

ただし、接続をリッスンするアプリがあれば、ソケット接続を使用してサンドボックスを「呼び出す」ことができます。Merapiを確認してください。Java を使用することに慣れている場合は、単純なソリューションとして役立つ可能性がありますが、C# などの他のものを使用して自分で作成することもできます。

于 2009-02-01T03:37:29.067 に答える