Archive for 17 de setembro de 2009
Conhecendo o Actionscript gerado pelo Flex
Posted by Renato Pacheco in Flex on 17 de setembro de 2009
O Flex nada mais é que um compilador cheio de componentes que estruturamos pelo MXML assim como fazemos no HTML, mas no fim tudo isso será interpretado pelo programa onde classes Actionscript serão geradas e finalmente compiladas em arquivos SWF.
Agora se toda aquela estrutura MXML nada mais é que um esquema para gerar classes ActionScript, então por onde andam esses arquivos que não aparecem nas pastas do projeto?
Criando um novo projeto, que eu vou chamar de “ProjetoFlex” (muito original) e colocamos apenas um label:
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> <mx:Label text="OLÁ MUNDO" /></mx:Label></mx:Application>
No Flex Navigator temos a seguinte estrutura.

Nada em especial, só as pastas de depuração e a de template idênticas, como deveria ser, sendo diferente apenas pelo ProjetoFlex.swf que esta representado pelo ProjetoFlex.mxml.
Vamos fazer com que o Flex não esconda mais os códigos ActionScript clicando com o botão direito do mouse sobre a pasta do projeto.

Abrimos a opção Properties e selecionamos a opção Flex Compiler.

Agora no campo de Addicional compile arguments, orientamos o Flex para que ao compilar os arquivos mostre a pasta de scripts. Para isso basta deixar o campo desta maneira:
-locale en_US -keep-generated-actionscript

Feito isso clique em Apply e depois em OK.
Uma nova pasta chamada generated vai aparecer e nela todos os scripts que o Flex precisou criar para poder chegar ao seu resultado final o SWF.

Aos curiosos é uma boa fonte de informação para entender melhor como o Flex monta o seu resultado final, podendo até nos levar a fazer o script manualmente do que utilizar a tag de programação do Flex para melhorar o desempenho do projeto.
E esta pasta não se aplica somente a página principal, se aplica a tudo desde seus componentes personalizados, até mesmo o CSS. Supondo que você crie sub-pastas para organizar sua estrutura, por exemplo um a pasta só para CSS, dentro dela será criada uma pasta generated correspondente a este conteúdo.