Есть ли способ заставить проект ActionScript 3 (Flex / AIR) печатать на стандартный вывод? - PullRequest
7 голосов
/ 02 сентября 2008

Можно ли как-нибудь скомпилировать двоичный файл из проекта печати ActionScript 3 в stdout при выполнении?

Из того, что я собрал, люди обошли это ограничение, написав хаки, использующие локальные соединения с сокетами, и приложения AIR, которые записывают файлы в локальной файловой системе, но это почти так - очевидно, это невозможно среды выполнения Flash Player и AIR от Adobe.

Существует ли какой-либо проект (например, основанный на коде Тамарина), который пытается реализовать что-либо, обеспечивающее такую ​​функциональность?

Ответы [ 4 ]

9 голосов
/ 09 февраля 2009

С помощью AIR в Linux легко записать в стандартный вывод, поскольку процесс может видеть свои собственные файловые дескрипторы как файлы в /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();

Примечание: См. этот ответ о разнице между writeUTF() и writeUTFBytes() - последний позволит избежать искаженного вывода на стандартный вывод.

2 голосов
/ 02 сентября 2008

Как вы говорите, не существует никакого созданного Adobe способа сделать это, но вам, возможно, повезет больше с Zinc , он похож на AIR, но обеспечивает реальную интеграцию ОС с приложениями на основе Flash. Посмотрите, хотя API документы , там должно быть что-то.

1 голос
/ 27 ноября 2008

Редтамарин , кажется, может это сделать (хотя он еще в зачаточном состоянии):

Содержимое 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
1 голос
/ 16 сентября 2008

Если вы используете отладочный Flash Player, вы можете сделать так, чтобы Flash Player записывал сообщения трассировки в файл в вашей системе.

Если вы хотите получать сообщения в режиме реального времени, вы можете добавить файл в файл.

Подробнее:

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

микрофонные камеры

mesh@adobe.com

...