Un modo per stampare un progetto ActionScript 3 (Flex/AIR) sull'output standard?
-
09-06-2019 - |
Domanda
Esiste un modo per compilare un file binario da un progetto ActionScript 3 per stampare materiale stdout quando eseguito?
Da quello che ho capito, le persone hanno aggirato questa limitazione scrivendo hack che si basano su connessioni socket locali e app AIR che scrivono su file nel filesystem locale, ma praticamente è tutto: ovviamente non è possibile con Flash Player e runtime AIR di Adobe.
C'è qualche progetto (ad es.basato sul codice Tamarin) che sta tentando di implementare qualcosa che fornisca questo tipo di funzionalità?
Soluzione
Con AIR su Linux, è facile scrivere su stdout, poiché il processo può vedere i propri descrittori di file come file in /dev.
Per stdout, apri /dev/fd/1
O /dev/stdout
come un FileStream
, quindi scrivilo.
Esempio:
var stdout : FileStream = new FileStream();
stdout.open(new File("/dev/fd/1"), FileMode.WRITE);
stdout.writeUTFBytes("test\n");
stdout.close();
Nota: Vedere questa risposta per la differenza tra writeUTF()
E writeUTFBytes()
- quest'ultimo eviterà un output confuso sullo stdout.
Altri suggerimenti
Come dici tu, non esiste un modo creato da Adobe per farlo, ma potresti avere più fortuna Zinco, è simile ad AIR ma fornisce una reale integrazione del sistema operativo delle applicazioni basate su Flash.Guarda però il Documenti API, dovrebbe esserci qualcosa lì.
Se utilizzi un Flash Player di debug, puoi fare in modo che il registro di Flash Player tracci i messaggi in un file sul tuo sistema.
Se desideri messaggi in tempo reale, puoi seguire il file.
Ulteriori informazioni:
http://blog.flexexamples.com/2007/08/26/debugging-flex-applications-with-mmcfg-and-flashlogtxt/
camere del microfono
mesh@adobe.com
Redtamarin sembra essere in grado di farlo (anche se è ancora agli inizi):
Contenuti di test.as
:
import avmplus.System;
import redtamarin.version;
trace( "hello world" );
trace( "avmplus v" + System.getAvmplusVersion() );
trace( "redtamarin v" + redtamarin.version );
Sulla riga di 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