Curso AS3

Archive for the ‘Actionscript 2.0’ Category

FileReference não executa o download

Tuesday, July 29th, 2008

Podemos forçar o download de arquivos como um txt, jpg, gif, etc, utilizando PHP manipulando o header. No Flash podemos utilizar também a classe FileReference, faz a mesma coisa, e de forma muito simples, portanto se estamos utilizando o Flash é muito mais vantajoso utilizar a classe do próprio actionscript.

Mas este post não tem intenção de abordar a classe FileReference, e sim de um problema pelo qual passei, observe o script abaixo:

Actionscript:
  1. function onDownload():void
  2. {
  3. var fl:FileReference = new FileReference();
  4. fl.download(new URLRequest("texto.txt"));
  5. }

Um script simples que parece funcionar, entretanto após clicar em salvar na janela aberta no browser o arquivo nunca será salvo.

O problema ocorre porque ao contrário da classe URLLoader, a classe FileReference não permanece disponível quando o escopo onde está presente é descartado, assim a caixa para salvar é aberta, mas o objeto FileReference já foi eliminado.

A solução é muito simples, basta declarar o objeto FileReference em um escopo que estará disponível enquanto o objeto for necessário, em classes declare como uma propriedade.

O script abaixo funcionará:

Actionscript:
  1. var fl:FileReference = new FileReference();
  2.  
  3. function onDownload():void
  4. {
  5. fl.download(new URLRequest("texto.txt"));
  6. }

O problema é documentado pela Adobe em FileReference.download() in SWF file fails.

Security Settings, chamando Javascript localmente via Flash

Tuesday, May 6th, 2008

No post Flash junto ao Lightbox e Shadowbox recebi alguns comentários no blog e mensagens via e-mail relatando que a reprodução do exemplo não funcionou. Se você fez tudo certo, funciona, o problema é que localmente existem algumas restrições que bloqueiam a chamada do Javascript pelo Flash.

Uma das soluções é liberar a partição, ou pasta que você está trabalhando na página da Adobe em Global Security Settings Panel. Acessando a página clique em Edit Locations.., Browse Folder... e selecione a pasta e/ou partição. Pronto, nem precisa reiniciar a máquina.

Eu já adiciono a partição toda para não precisar adicionar cada pasta de cada projeto.

Lembrando que no servidor funcionará de qualquer forma, é uma restrição local.

Papervision 3D, uma engine 3D para o Flash

Sunday, November 25th, 2007

O Papervision 3D trata-se de uma engine open-source (!) para Flash Platform. O primeiro beta a ser liberado foi em Julho deste ano. O time que escreveu a engine é formado por Carlos Ulloa, John Grden e Ralph Hauwert.

Abaixo segue um demo do que o Papervision 3D é capaz.

This movie requires Flash Player 8.

Alguns Links úteis:

Ultimamente estou mechendo bastante com PPV, portanto eu devo voltar a falar bastante sobre. :)

Participei do Game Jam Brasil

Wednesday, November 14th, 2007

gamejam.jpg

Wow! É com muita alegria que posso dizer que fiz parte do Game Jam Brasil. Básicamente foi uma maratona de programação de 31 horas seguidas para desenvolver jogos para o OLPC XO, o evento ocorreu no laboratório de computação da UFSCAR.

Foram 14 equipes, que variam de 1 a 4 membros, minha equipe foi formada por mim e meu grande amigo Thiano Lima.

erick-thiano.jpg

(more...)

Manipulando MP3s com a classe Sound

Wednesday, January 24th, 2007

Para manipularmos MP3s no Flash, utilizaremos a classe Sound. Para iniciar, deve-se criar um objeto Sound, e desta forma poderemos utilizar os seus métodos, propriedades e eventos.

(more...)

Criando suas próprias classes

Wednesday, January 24th, 2007

Uma classe descreve as características de um objeto, ou seja, seus métodos e propriedades. Classes personalizadas devem ser armazenadas em um arquivo Actionscript externo, que são importados ao compilar o FLA.

(more...)

Desenhar e resgatar a velocidade do mouse

Thursday, December 28th, 2006

Se você observar, no menu existe uma nova categoria, Respostas, nesta categoria vou postar questões solucionadas por mim em listas de discussões, fóruns, e-mail, etc; pretendo postar apenas as questões mais elaboradas, esta nova categoria deverá aquecer a frequência de posts no blog.

A questão aqui é a seguinte, o usuário quer desenhar no Flash ao pressionar o botão do mouse e além disto ele quer saber a velocidade em que está sendo desenhado. Para poder desenhar com o mouse use os métodos lineStyle(), lineTo() e moveTo() da classe MovieClip.

  • lineStyle - formata a linha, ele possui diversos parâmentros, para este exemplo os três primeiros são sulficientes, espessura, cor e alpha.
  • lineTo - desenha a linha ponto-a-ponto formando uma reta, os parâmetros são x e y.
  • moveTo - move o atual ponto de desenho para _x e _y.

(more...)

Detecção de neve caindo

Monday, December 25th, 2006

Primeiramente Feliz Natal! Se você está lendo isso hoje, dia 25 de dezembro de 2006, parabéns, somos dois nerds, e como eu, você não deve possuir uma vida social e sente-se bem programando no final de semana, feriados, etc; por este motivo desejo a você leitor presente até no natal, um ótimo 2007!

Comecei a programar ontem a noite o exemplo acima, era para ser postado 23h59m, mas encontrei problemas em gerenciar o processamente do filme e cheguei a um resultado regular somente hoje, são muitos flocos realizando verificações individuais, por enquanto o máximo que eu consegui trabalhar sem comprometer o processamento foi com pouco mais de 200 flocos de neve.

(more...)

The Fuse Kit para animações dinâmicas é o melhor

Sunday, December 17th, 2006

The Fuse Kit

Dentre todas as engines disponíveis para animação dinâmica no Flash, o Fuse Kit é simplesmente o melhor.

O Fuse, criado pelo Moses Gunesch, é um conjunto de classes que são instaladas através de um único arquivo MXP, a proposta do Fuse é de uma sintaxe limpa e compacta de grande flexibilidade. As easing equations usadas no Fuse Kit são as do Robert Penner.

(more...)

Informações de tempo

Tuesday, December 12th, 2006

Essa é para Flash Designer's, veio da resposta que enviei para um dos fóruns da Adobe, o usuário que enviou a pergunta estava precisando exibir informações do tempo total e atual do filme que contém diversas cenas e frames, as informações deveriam ser exibidas em texto e visualmente em uma barra, veja abaixo:

This movie requires Flash Player 8.

Para usar o script, coloque-o no primeiro frame e crie um textfield dinâmico com suporte a multiline e a html e o instancie de txtFrameStatus, crie também um movieclip com uma barra horizontal, alinhe a direita do ponto de registro e a instancie de mcBar, o FPS usado deve ser setado no script na variável movieFPS.

(more...)