7

ActionScript 3 プロジェクトからコンパイルされたバイナリを、実行時に標準出力に出力する方法はありますか?

私が収集した情報によると、人々はローカル ソケット接続に依存するハックや、ローカル ファイルシステム内のファイルに書き込む AIR アプリを作成することで、この制限を回避してきましたが、それだけです。Flash Player では明らかに不可能です。 Adobe の AIR ランタイム。

この種の機能を提供する何かを実装しようとしているプロジェクト (例: Tamarin コードに基づく) はありますか?

4

4 に答える 4

9

AIR on Linux では、プロセスが独自のファイル記述子を /dev 内のファイルとして認識できるため、stdout に簡単に書き込むことができます。

stdout の場合は、/dev/fd/1または/dev/stdoutas a として開きFileStream、それに書き込みます。

例:

var stdout : FileStream = new FileStream();
stdout.open(new File("/dev/fd/1"), FileMode.WRITE);
stdout.writeUTFBytes("test\n");
stdout.close();

注:との違いについては、この回答を参照してください。後者は、stdout での出力の文字化けを回避します。writeUTF()writeUTFBytes()

于 2009-02-09T16:24:49.427 に答える
2

あなたが言うように、これを行うためのアドビが作成した方法はありませんが、 Zincの方が幸運かもしれません。それはAIRに似ていますが、Flashベースのアプリケーションの実際のOS統合を提供します。APIドキュメントを見てください、そこに何かがあるはずです。

于 2008-09-02T06:41:20.143 に答える
1

デバッグFlashPlayerを使用している場合は、FlashPlayerにシステム上のファイルへのトレースメッセージを記録させることができます。

リアルタイムのメッセージが必要な場合は、ファイルを調整できます。

より詳しい情報:

http://blog.flexexamples.com/2007/08/26/debugging-flex-applications-with-mmcfg-and-flashlogtxt/

マイクチャンバー

mesh@adobe.com

于 2008-09-15T22:26:58.200 に答える
1

Redtamarinはこれを実行できるようです (まだ初期段階ですが)。

の内容test.as:

import avmplus.System;
import redtamarin.version;

trace( "hello world" );
trace( "avmplus v" + System.getAvmplusVersion() );
trace( "redtamarin v" + redtamarin.version );

コマンドラインで:

$ ./buildEXE.sh test.as 

test.abc, 243 bytes written
test.exe, 2191963 bytes written

test.abc, 243 bytes written
test.exe, 2178811 bytes written

$ ./test
hello world
avmplus v1.0 cyclone (redshell)
redtamarin v0.1.0.92
于 2008-11-27T17:49:05.713 に答える