Есть какой-нибудь способ вывести проект ActionScript 3 (Flex / AIR) на стандартный вывод?

StackOverflow https://stackoverflow.com/questions/38651

Вопрос

Есть ли какой-нибудь способ получить двоичный файл, скомпилированный из проекта ActionScript 3, для печати в стандартный выход когда казнен?

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

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

Это было полезно?

Решение

С 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() - последнее позволит избежать искаженного вывода при стандартном выводе.

Другие советы

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

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

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

Подробная информация:

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

майк Чемберс

mesh@adobe.com

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

Содержание 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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top