Curso AS3

Archive for the ‘Flex’ 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.

Ribop em fase de testes

Thursday, July 24th, 2008

Estou testando um projeto meu, o Ribop, desenvolvido em Flex. Os testes estão sendo feitos a mais de um mês por alguns amigos, e amigos de amigos, eu convidei uns cinco amigos, mas o site já tem cadastrado cerca de cinquenta usuários.

O sistema é um espaço para troca de idéias em forma de texto, imagens e vídeos, cada espaço pode ser personalizada de acordo com as preferências do usuário e conta com recursos como acesso completo (ou quase) via url.

O site está em fase beta, quem quiser conferir basta se cadastrar, mas eu adianto, é beta, todos os dias eu atualizo o sistema com algo novo, mas ainda tem muita coisa a ser feita. =P

Quem quiser me adicionar, o endereço do meu espaço é http://ribop.com/#/ericksouza/.

Porque Ribop?

O porque do nome é bem simples, Ribop surgiu de Bebop que vem do Jazz. Conheci o termo através do anime Cowboy Bebop (muito bom), onde a trilha sonora é Jazz.

Resumo do projeto.

O Ribop é um projeto meu que inicie em novembro do ano passado, e junto com meu amigo Luís Felipe programamos a base do site. O desenvolvimento foi interrompido no início do ano de 2008 por diversos fatores que me obrigou a abandonar o projeto inicial. Logo depois decidi começar um novo projeto, agora sendo desenvolvido apenas por mim, chegando numa estrutura melhor do que eu esperava, tornando qualquer atualização completamente mais simples, o encapsulamento foi o principal motivo da melhora de controle de dados.

Parâmetro que Buga o ContextMenu no Flex 3

Friday, February 1st, 2008

Hoje sem dúvida a melhor forma para inserir o arquivo SWF no HTML é o SWFObject, porém perdi algumas horas está noite por ter setado um parâmetro via SWFObject em meu SWF.

Estou trabalhando numa aplicação em Flex, e não estava conseguindo inserir itens no menu direito, via ContextMenu, onde só funcionava qunado clicado sobre um objeto Text (selectable=true), depois de muitos testes lembrei que no HTML estava setado a propriedade menu=false que remove parcialmente os itens do menu direito, e após remover a seguinte linha tudo funcionou como deveria :D :

JavaScript:
  1. so.addParam('menu', 'false');

Para remover os itens do menu direito basta utilizar o método hideBuiltInItems() a classe ContextMenu:

Actionscript:
  1. var cm:ContextMenu = new ContextMenu();
  2. cm.hideBuiltInItems();
  3. this.contextMenu = this.cm;

Como já disse, uso o SWFObject para inserir o SWF no HTML, e por este motivo não testei se via tags HTML o bug também ocorre, o código HTML que citei é:

HTML:
  1. <param name="menu" value="false"/>

Se alguém testar, por favor me avise e eu edito o post e adiciono essa informação.

IMPORTANTE: Estou usando o Flex 3 Beta 3, portanto temos todos estes fatores a serem considerados, e pode ser que este bug não se reproduza no Flex 2 ou no Flash.

Mouse wheel para Flex no Mac OSX

Wednesday, January 16th, 2008

Meu micro principal é um Macbook, e desenvolvendo uma aplicação em Flex a falta do suporte ao Mouse wheel estava me chateando e resolvi partir para uma solução.

Encontrei diversas soluções, mas somente uma automática, que é o que eu preciso, habilitar o suporte a mouse wheel na aplicação. A solução foi encontrada no hasseg.org, muito simples de ser aplicado.

Primeiro inclua o javascript no html da página.
Obs: O swf está sendo incluído via SWFObject.

JavaScript:
  1. <script type="text/javascript">
  2.     var mw_flashMovieId = "flashMovie"; //id do seu swf
  3.     var mw_flashContainerId = "flashContainerDiv"; //id da div do seu swf
  4. </script>
  5. <script src="osxmousewheel.js" type="text/javascript"></script>

No Actionscript da sua applicação Flex:

Actionscript:
  1. import org.hasseg.externalMouseWheel.*;
  2. private var _mwSupport:ExternalMouseWheelSupport = ExternalMouseWheelSupport.instance;
  3.  
  4. ExternalMouseWheelSupport.registerAutomatically = true;

Pronto! Já está com o suporte ao mouse wheel e você pode também adicionar listener normalmente:

Actionscript:
  1. myBox.addEventListener(MouseEvent.MOUSE_WHEEL, function(event:MouseEvent):void {
  2.     t.text = ("Mouse wheel delta: "+event.delta);
  3. });

Exemplo rodando.

Código fonte do exemplo com o javascript e package dos scripts necessários.

E ainda uma documentação.

Adobe Flex Builder 3 Beta 3

Thursday, December 13th, 2007

Acabou de sair o beta 3 do Flex Builder 3. Estou comentando porque no beta 2 eu encontrei diversos bugs e que neste novo beta já devem ter sido corrigidos, afinal no bugs.adobe.com está havendo ótimo retorno dos bugs encontrados pela comunidade de desenvolvedores.

Vou usar um pouco este beta 3 e depois comento sobre dois bugs muito importantes que podem levar um programador a loucura. =P

Download do Flex Builder 3 Beta 3 em http://labs.adobe.com/technologies/flex/flexbuilder3/

Palestra Desvendando o Flex

Monday, November 13th, 2006

No próximo dia 18/11 às 15h teremos uma palestra online com Leonardo França, o tema será “Desvendando o Flex”.

Leonardo França vem colaborando com ótimos posts em seu blog. Ele é Manager do AUG-DF - Abobe User Groups de Brasilia, e Adobe Certified Professional Flash MX 2004 Developer.

Link para a palestra, acesse no dia 18/11 às 15h.