De qualquer maneira ter um ActionScript 3 (Flex/AIR) projeto de impressão para a saída padrão?

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

Pergunta

Existe alguma forma de ter um binário compilado a partir de uma ActionScript 3 projeto de impressão de material para stdout quando executado?

A partir do que eu recolhi, as pessoas foram indo contornar essa limitação, por escrito hacks que dependem de locais de conexões de soquete e AR apps que gravar arquivos no sistema de arquivos local, mas que é muito bonito -- é claro que não é possível com o Flash Player e o AIR tempos de execução da Adobe.

Existe algum projeto (e.g.com base no Mico de código) que está a tentar implementar algo que fornece este tipo de funcionalidade?

Foi útil?

Solução

Com AR no Linux, é fácil escrever para stdout, uma vez que o processo pode ver seus próprios descritores de arquivo como arquivos em /dev.

Para stdout, abrir /dev/fd/1 ou /dev/stdout como um FileStream, e , em seguida, escreva para isso.

Exemplo:

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

Nota: Ver esta resposta a diferença entre writeUTF() e writeUTFBytes() - o último vai evitar erros de saída no stdout.

Outras dicas

Como você diz, não há Adobe-criado maneira de fazer isso, mas você pode ter mais sorte com o Zinco, é semelhante ao AR, mas oferece a possibilidade de OS de integração de aplicativos baseados em Flash.Olha que o A API do google docs, deve haver alguma coisa lá.

Se você estiver usando uma depuração do Flash Player, você pode ter o Flash Player log de rastreamento de mensagens para um arquivo no seu sistema.

Se você deseja mensagens em tempo real, então você poderia cauda o arquivo.

Mais informações:

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

mike chambers

mesh@adobe.com

Redtamarin parece ser capaz de fazer isso (mesmo que ainda em sua infância):

Conteúdo test.as:

import avmplus.System;
import redtamarin.version;

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

Na linha 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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top