De toute façon d'avoir une ActionScript 3 (Flex/AIR) projet d'impression sur la sortie standard?

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

Question

Est-il possible d'avoir un binaire compilé à partir d'une ActionScript 3 projet d'impression des trucs à stdout lors de l'exécution?

De ce que j'ai recueillies, les gens ont été en cours autour de cette limitation par écrit hacks qui s'appuient sur socket local connexions et les applications AIR que d'écrire des fichiers dans le système de fichiers local, mais c'est assez bien -- il n'est évidemment pas possible avec le Flash Player et d'AIR moteurs d'exécution Adobe.

Est-il un projet (p. ex.basé sur le Tamarin code) qui tente de mettre en place quelque chose qui serait de fournir ce type de fonctionnalité?

Était-ce utile?

La solution

Avec de l'AIR sous Linux, il est facile d'écrire sur la sortie standard, puisque le processus peut voir de ses propres descripteurs de fichiers en tant que fichiers dans /dev.

Pour stdout, ouvrir /dev/fd/1 ou /dev/stdout en tant que FileStream, puis écrire.

Exemple:

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

Note: Voir cette réponse pour la différence entre writeUTF() et writeUTFBytes() - le dernier permettra d'éviter brouillé la sortie sur la sortie standard stdout.

Autres conseils

Comme vous le dites, il n'y a pas de Adobe-créé le chemin à faire, mais vous pourriez avoir plus de chance avec Le Zinc, il est semblable à l'AIR mais réel dans les OS de l'intégration de Flash-applications.Regardez bien la Les docs de l'API, il devrait y avoir quelque chose là-bas.

Si vous utilisez une version de débogage de Flash Player, vous pouvez avoir le Flash Player journal des messages de trace dans un fichier sur votre système.

Si vous voulez en temps réel des messages, alors vous pourriez queue le fichier.

Plus d'infos:

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

mike chambers

mesh@adobe.com

Redtamarin semble être en mesure de le faire (même si c'est encore à ses balbutiements):

Contenu de test.as:

import avmplus.System;
import redtamarin.version;

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

Sur la ligne de commande:

$ ./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
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top