lenguaje - ¿Hay alguna forma de imprimir un proyecto de ActionScript 3(Flex/AIR) a la salida estándar?
as3 lenguaje (4)
¿Hay alguna forma de que un documento binario compilado de un proyecto de ActionScript 3 imprima cosas en stdout cuando se ejecuta?
Según lo que he reunido, las personas han eludido 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 ejemplo, basado en el código Tamarin) que esté intentando implementar algo que proporcione este tipo de funcionalidad?
Como dices, no existe una forma creada por Adobe para hacer esto, pero es posible que tengas más suerte con Zinc , que sea similar a AIR pero que proporcione una integración real del sistema operativo de las aplicaciones basadas en Flash. Mira a través de los documentos API , debería haber algo allí.
Si está utilizando un Flash Player de depuración, puede hacer que el Flash Player registre los mensajes de rastreo en un archivo de su sistema.
Si desea mensajes en tiempo real, puede alinear 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
Redtamarin 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
Con AIR en Linux, es fácil escribir en stdout, ya que el proceso puede ver sus propios descriptores de archivos como archivos en / dev.
Para stdout, abra /dev/fd/1
o /dev/stdout
como un FileStream
, luego escriba eso.
Ejemplo:
var stdout : FileStream = new FileStream();
stdout.open(new File("/dev/fd/1"), FileMode.WRITE);
stdout.writeUTFBytes("test/n");
stdout.close();
Nota: Vea esta respuesta para la diferencia entre writeUTF()
y writeUTFBytes()
- este último evitará salida distorsionada en stdout.