¿Alguna forma de imprimir un proyecto ActionScript 3 (Flex/AIR) en una salida estándar?

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

Pregunta

¿Hay alguna forma de compilar un binario a partir de un proyecto ActionScript 3 para imprimir elementos en salida estándar cuando se ejecuta?

Por lo que he recopilado, la gente ha estado sorteando esta limitación escribiendo hacks que dependen de conexiones de socket locales y aplicaciones de AIR que escriben en archivos en el sistema de archivos local, pero eso es todo: obviamente no es posible con Flash Player. y tiempos de ejecución de AIR de Adobe.

¿Hay algún proyecto (por ej.basado en el código de Tamarin) que está intentando implementar algo que proporcione este tipo de funcionalidad?

¿Fue útil?

Solución

Con AIR en Linux, es fácil escribir en la salida estándar, ya que el proceso puede ver sus propios descriptores de archivos como archivos en /dev.

Para salida estándar, abra /dev/fd/1 o /dev/stdout como un FileStream, luego escribe a eso.

Ejemplo:

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

Nota: Ver esta respuesta por la diferencia entre writeUTF() y writeUTFBytes() - este último evitará resultados confusos en la salida estándar.

Otros consejos

Como usted dice, no existe una forma creada por Adobe para hacer esto, pero es posible que tenga más suerte con Zinc, es similar a AIR pero proporciona una integración real del sistema operativo de aplicaciones basadas en Flash.Mira aunque el Documentos API, debería haber algo allí.

Si está utilizando un Flash Player de depuración, puede hacer que Flash Player registre los mensajes de seguimiento en un archivo de su sistema.

Si desea mensajes en tiempo real, puede seguir el archivo.

Más información:

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

cámaras de micrófono

malla@adobe.com

tamarino rojo parece ser capaz de hacer esto (aunque todavía está en su infancia):

Contenido de test.as:

import avmplus.System;
import redtamarin.version;

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

En la línea de comando:

$ ./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
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top