有什么方法可以让从 ActionScript 3 项目编译的二进制文件在执行时将内容打印到 stdout 吗?
据我所知,人们一直在通过编写依赖本地套接字连接的 hack 和写入本地文件系统中的文件的 AIR 应用程序来绕过此限制,但仅此而已 - 显然这是不可能的Adobe 的 Flash Player 和 AIR 运行时。
是否有任何项目(例如基于 Tamarin 代码)正在尝试实现提供此类功能的项目?
最佳答案
使用 Linux 上的 AIR,可以轻松写入标准输出,因为进程可以将其自己的文件描述符视为/dev 中的文件。
对于标准输出,打开 /dev/fd/1
或/dev/stdout
作为FileStream
,然后写入该内容。
示例:
var stdout : FileStream = new FileStream();
stdout.open(new File("/dev/fd/1"), FileMode.WRITE);
stdout.writeUTFBytes("test\n");
stdout.close();
注意:请参阅 this answer writeUTF()
之间的差异和writeUTFBytes()
- 后者将避免标准输出上的乱码输出。
关于apache-flex - 有什么方法可以将 ActionScript 3 (Flex/AIR) 项目打印到标准输出吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38651/