AIR アプリケーションを作成するつもりでしたが、外部アプリケーションを実行する必要があり、Adobe AIR のセキュリティ制限のために... System("file実行する"); それから Alchemy を使用してそれを swc に変更し、それを私のアプリケーションで使用します... 誰かがこの種のことを試しましたか、それともうまくいくと思いますか?
3 に答える
Alchemy について理解する必要があるのは、C を actionscript と同じバイトコードにコンパイルし、flash/flex as3 アプリケーションと同じ仮想マシン (AVM2) で実行することです。
Alchemy が一部の操作で高速になる理由は、コンパイルされた C (バイトコードにコンパイル) が、フラッシュ 10 で追加された最適化された AVM2 命令を介して生の「メモリ」(ApplicationDomain.domainMemory) にアクセスできるためです。
私が理解しようとしているのは、Alchemy は単に AVM2 の上で実行されるため、他のアプリケーションと同じように制限されるということです。AIR アプリケーションの Alchemy は、ブラウザー サンドボックスの Alchemy よりも多くのことを実行できますが、そのサンドボックスによって制限されます。
本当に外部アプリケーションを実行する必要がある場合は、ShuやZincなどを調べる必要があります。
申し訳ありませんが、これ以上お役に立てませんでした。
これは機能しません。Alchemy は、外の世界と対話するプログラムには実際には適していません。システム コールの実行はサポートされないと思います。Alchemy がサポートしていたとしても、flash/air ランタイムは確実にそれをブロックします。
クロスプラットフォームの動作が必要ない場合は、昔ながらの「プロジェクター」の作成を検討できます。fscommand を使用してプロジェクター exe からプログラムを起動することは可能です。ただし、起動する実行可能ファイルは、バイナリの隣にある fscommand という名前のフォルダーに配置する必要があることに注意してください。それでも不十分な場合は、http://www.northcode.com/などのサードパーティの商用ツールを試すことができます。
いいえ、Richard Szalay の正解です。Alchemy は C コードを ActionScript バイトコードにコンパイルするため、結果として得られる SWF には、他のものと同じサンドボックスの制限が適用されます。AIR の制限は緩和される可能性がありますが、Alchemy を使用してもその点では何のメリットもありません。
ただし、接続をリッスンするアプリがあれば、ソケット接続を使用してサンドボックスを「呼び出す」ことができます。Merapiを確認してください。Java を使用することに慣れている場合は、単純なソリューションとして役立つ可能性がありますが、C# などの他のものを使用して自分で作成することもできます。