1. Introdução
O Flash da Macromedia é agora amplamente utilizado na Internet para aprimorar a descrição do conteúdo de sites. Os recentes lançamentos do Flash pela Macromedia (Flash 6 e Flash MX) deixaram claro que a Macromedia está considerando seriamente o Flash como uma interface preferida para o desenvolvimento de aplicações Web. Para uma interface, o Flash pode ser uma ótima escolha, porém, esta escolha não é utilizá-lo para substituir a lógica de negócios, gerenciamento de consultas e segurança. Para um desenvolvedor Web, para obter desempenho verdadeiramente poderoso e recursos de classe empresarial, você precisa de .NET, Flash e suporte a camada de descrição avançada, combinados com a tecnologia .NET da Microsoft.
O Flash inclui ActionScript – uma linguagem de script usada para adicionar interatividade às animações. Desde a introdução do ActionScript no Flash 5, a Macromedia continuou a aprimorá-lo, passando de uma linguagem de script simples para um recurso de programação bastante sólido que ainda tem muitas limitações. No Flash MX 2004, a Macromedia introduziu o ActionScript 2.0 – que oferece suporte a novos recursos e novas maneiras de estruturar código. Para tornar este artigo mais fácil de entender, você deve primeiro ler alguns conhecimentos básicos sobre a construção de sites em Flash com ActionScript.
A Macromedia introduziu métodos para integrar facilmente dados externos em aplicativos Flash para permitir aplicativos orientados a dados mais complexos e robustos. Flash e .NET se promovem como soluções multiplataforma e, portanto, tornam-se parceiros naturais. Ainda assim, ligar as duas tecnologias não é uma tarefa simples. Este artigo discutirá com você vários métodos de integração de aplicativos Flash e .NET.
2. Integre Flash e ASP.NET
e incorpore animações Flash em páginas ASP.NET.
As animações Macromedia Flash são colocadas em páginas .aspx usando conjuntamente as tags OBJECT e EMBED. A tag EMBED foi originalmente desenvolvida pela Netscape para funcionar com Netscape 2.0 ou superior. Posteriormente, esta tag foi adotada pelo Microsoft Internet Explorer (MSIE). Para compatibilidade do navegador, a tag OBJECT específica do MSIE e a tag EMBED podem ser usadas juntas. O código HTML a seguir mostra o uso de tags OBJECT e EMBED para incorporar uma animação Flash (arquivo *.swf):
3. Conecte o Flash a dados externos
Existem três maneiras de integrar animações em Flash com dados externos: FlashVars, LoadVars e a nova tecnologia FlashRemoting. Um dos métodos mais simples é passar dados externos de uma página .aspx para uma animação Flash incorporada em uma página da Web usando FlashVars para passar variáveis na parte HTML do código. Os valores dessas variáveis definidas usando FlashVars podem ser acessados no nível raiz da animação Flash. Para ser executado em todos os ambientes de navegador, o atributo FlashVars deve receber um valor nas tags OBJECT e EMBED.
Aqui estão os FlashVars usados com uma tag de objeto:
<PARAM Name="FlashVars" Value="init=yes&check=true">
A seguir estão os FlashVars usados com a tag EMBED:
<EMBED src="test.swf" FlashVars=" init =yes&check=true"></EMBED>
4. Por que usar FlashVars?
Em vez de emprestar FlashVars, você também pode colocar variáveis em tags HTML - adicione-as ao final da URL do arquivo .SWF por meio de uma string de consulta e depois passe-a para uma animação Flash. Pode haver um problema com essa abordagem - se essa variável for necessária quando o arquivo .SWF for carregado, pois um arquivo .SWF deve ser baixado e executado antes que os dados sejam solicitados ao servidor. Os valores das variáveis também podem ser definidos no Flash por meio do método "Carregar variáveis" e JavaScript. Cada um desses métodos tem a desvantagem de tempos de resposta lentos e lentos; é por isso que os desenvolvedores devem usar FlashVars para passar dados do ASP.NET para animações em Flash; A figura a seguir mostra o código para passar variáveis como uma string de consulta:
Quaisquer variáveis passadas usando FlashVars podem ser acessadas no nível raiz da animação Flash (_level0). Para recuperar esses valores dentro de uma animação Flash, você pode criar uma variável dinâmica. O seguinte código ActionScript implementa a atribuição de "initvalue" no Flash:
_level0.initvalue = init
5. Comunicação entre Flash e banco de dados
Uma animação Flash não pode acessar diretamente um banco de dados. Entretanto, o Flash pode se comunicar com o banco de dados por meio de qualquer tecnologia do lado do servidor, como ASP ou ASP.NET. Existem várias maneiras de realizar esta tarefa. Neste artigo, explicaremos o método LoadVariables e o método sendAndLoad.
(1) Use o método loadVariables no clipe de animação
O método loadVariables do clipe de animação lê dados de um arquivo externo ou URL e define o valor para a variável do clipe de animação. Depois que o clipe de animação é instanciado, a ação de carregamento do clipe de animação é iniciada no manipulador de eventos do evento de clipe. Quando o clipe de animação é inicializado, o método loadVariables pode ser chamado para carregar variáveis. O método loadVariables é uma chamada assíncrona e o Flash não aguarda o resultado da chamada. Quando os dados são recebidos em um comportamento loadVariables(), o comportamento dos dados do clipe de animação é inicializado no manipulador de eventos do evento de clipe.
Para demonstrar o uso desse método, este exemplo recupera o nome e a idade do usuário de um banco de dados com base em um ID selecionado em uma animação Flash. Na figura abaixo, o método loadVariables da animação é usado para carregar dados no fragmento de animação de uma página .aspx getUserData.aspx. Aqui, o ActionScript passa o ID do usuário - seu nome e idade serão exibidos na animação Flash como uma string de consulta para a página .aspx.
A página getUserData.aspx recupera o valor do ID da string de consulta mostrada abaixo:
Agora, o ASP.NET pode passar esse ID de valor para componentes de negócios do .NET. Este exemplo recupera o nome e a idade do usuário:
Conforme mencionado anteriormente nesta seção, o comportamento dos dados do manipulador de eventos onClipEvent do clipe de animação é inicializado quando os dados são recebidos em um comportamento loadVariables(). Declare as seguintes variáveis dinâmicas na animação Flash: flashName e flashAge. A figura a seguir mostra o código ActionScript usado no manipulador onClipEvent da animação Flash para recuperar o valor retornado da página .aspx.
NOTA: É importante - é a mesma variável definida na página .aspx. No exemplo mostrado aqui, a variável acessada na animação Flash é "name" - a mesma variável que ela define na página .aspx (Response.Write("name="&User.name)).
Esses valores agora podem ser usados dentro de animações Flash.
(2) Use o método sendAndLoad de clipes de animação
Na Internet de hoje, o XML ocupa um lugar importante na forma de sistema de documentos como formato de transporte universal com potencial para permitir a troca suave de dados, mesmo entre diferentes tipos de aplicações. XML fornece um mecanismo de gateway para comunicação entre aplicativos - até mesmo aplicativos em uma ampla variedade de sistemas diferentes. Desde que os aplicativos possam compartilhar dados (via HTTP, compartilhamento de arquivos ou outro mecanismo) e tenham um analisador XML, eles poderão compartilhar informações estruturadas que são muito fáceis de processar.
Flash MX oferece suporte à transferência de dados XML e existem vários métodos de tecnologia de servidor, como ASP e ASP.NET, para troca de XML. O Flash MX é capaz de enviar e receber pacotes XML usando as classes XML - load, send e sendAndLoad ou o novo XMLConnector do Flash MX. O último pode ser usado para enviar e receber pacotes via HTTP e vinculá-los a widgets de UI na camada Flash.
Vamos discutir o método sendAndLoad do objeto FlashXML, que é um método popular para implementar comunicação de dados XML orientada à arquitetura, tratamento de exceções e desempenho. Usamos este exemplo simples de inserção de detalhes de pontuação de um usuário em um banco de dados a partir de um cliente Flash e envio de uma mensagem de sucesso ou falha de volta ao cliente Flash.
(3) Criar um pacote XML em Flash
Um pacote XML
pode ser facilmente criado em Flash, como segue:
var sendXML:XML = new XML("<userid>123456</userid>");
página - usa ASP/ASP.NET e manipula o pacote XML de retorno.
O uso é o seguinte:
xmlObject.sendAndLoad (URL: String, targetXMLObject: XML): Void
Este 'xmlObject' é uma instância do objeto XML - ele encapsula o XML que deve ser enviado para a página .aspx; URL de destino que especifica o objeto XML; 'targetXMLObject' é o objeto XML - receberá as informações retornadas do lado do servidor.
O método sendAndLoad envia um pacote XML para um template do lado do servidor e recebe um pacote XML em resposta - diferentemente do método send da classe XML - que apenas envia um pacote XML e não espera nenhum tipo de resposta. Cada um desses métodos funciona à sua maneira, mas há uma diferença importante: o método send da classe XML usa um alvo como parâmetro - permite abrir uma nova janela do navegador ou substituir o conteúdo da janela atual do navegador, enquanto o método sendAndLoad usa um pacote XML como parâmetro - ele não inicia uma nova janela do navegador. Como o método send abre uma nova janela do navegador, podemos ver a saída da própria janela do navegador - o que pode ser extremamente útil para depuração.
Observação: se o arquivo Flash que emite a chamada sendAndLoad estiver sendo executado em um navegador da Web, o URL de destino estará no mesmo domínio da animação Flash. Se você também precisar se comunicar com aplicativos em domínios diferentes, consulte "Carregamento de dados entre domínios" em
www.macromedia.com para obter mais informações.
O código na figura a seguir mostra como o método sendAndLoad de um objeto XML é usado para se comunicar com uma página .aspx e processar o XML retornado do servidor:
O código acima faz o seguinte:
·Carrega a string XML em um objeto XML "userscore_xml". A instância contém o XML - que é enviado para a página ASP.NET do servidor remoto.
·Definir o atributo ignoreWhite do objeto XML "ResponseXMLObj_xml". Esta instância do objeto XML contém o pacote XML do servidor.
·Chame o método sendAndLoad ("userscore_xml") do objeto XML para enviar XML para a página .aspx do lado do servidor,
http://localhost/MyTestApp/scoring.aspx e armazene o pacote XML retornado na instância do objeto XML "ResponseXMLObj_xml ".
·Definir o método onLoad do objeto XML "ResponseXMLObj_xml". O Flash recebe a resposta XML da página .aspx do lado do servidor - ela é tratada no método onLoad do objeto XML.
·Em seguida, analisa o pacote XML recebido para exibir as mensagens necessárias no cliente Flash.
(4) Receba o pacote XML enviado do Flash da página ASPX
A figura a seguir mostra o código para concluir esta tarefa:
O código acima faz o seguinte:
· Recebe o XML enviado do cliente Flash (xmlDoc.Load(Request.InputStream)).
· Analisa o XML recebido e o passa ao componente de negócios para inserção no banco de dados.
· A mensagem XML formada é enviada de volta ao cliente Flash. As condições de sucesso ou exceção levantadas na camada de negócios são tratadas adequadamente e convertidas em várias mensagens XML - esta mensagem é repassada ao cliente Flash. O cliente Flash recebe essas mensagens XML e as exibe adequadamente.
6. Conclusão
As tecnologias Flash e .NET estão ganhando popularidade no mercado atualmente e provavelmente se tornarão parceiras de sucesso em um número crescente de arquiteturas de aplicativos. Essas duas técnicas lidam com alguns dos mesmos problemas, mas são fundamentalmente diferentes. O Flash MX permite que os sites tenham interatividade, enquanto o .NET ajuda a criar aplicativos corporativos. Conforme explorado neste artigo, a integração de aplicativos Flash e .NET é totalmente possível. Cada passo é uma questão de tomar uma decisão - como conectar essas duas partes e fazer o planejamento arquitetônico correto estrategicamente.
Embora uma nova geração de arquiteturas em torno do Flash Remoting esteja ganhando impulso nessa área, levará vários anos até que os métodos discutidos neste artigo possam ser aplicados a aplicativos de larga escala.