Oferta Nacional - 234x60
Página Inicial > javascript > Como passar parâmetros do flash para o javascript e do javascript para o flash

Como passar parâmetros do flash para o javascript e do javascript para o flash

Lomadee, uma nova espécie na web. A maior plataforma de afiliados da América Latina.

Olá!

Na última sexta, descobri, em conjunto com um dos membros do Tech Team do meuInglês,  Eduardo, um método muito interessante de se passar parâmetros do flash para uma função javascript e recuperar o valor retornado pela função para utilizar no flash.

A idéia inicial era fazer o flash executar uma função javascript que por sua vez iria fazer uma requisição AJAX utilizando JQuery, e retornar o valor da consulta para o flash.

Para ser sincero, fui infeliz nesse processo, mas ainda não tive tempo de pesquisar mais a fundo por uma forma de contornar o problema que aconteceu: a função retornava valor sempre falso, pois o AJAX ainda não havia retornado uma resposta antes do final da execução da função.

Mas, de qualquer forma, essa funcionalidade se mostrou muito importante, pois é possível controlar elementos HTML através do flash e, por sua vez, executar alguma ação no flash de acordo com o retorno da função javascript.

Vamos ao que interessa então! Vamos usar uma exemplo prático para ilustrar.

Vamos supor que você tenha um botão em seu flash. A pressionar o botão, você quer inserir/modificar um texto dentro de uma div, sendo que o texto foi escrito dentro de um campo de texto no flash.

O script do botão fica da seguinte forma:

// A linha abaixo é para carregar a biblioteca do flash que possui a função ExternalInterface.call, que fará a mágica
import flash.external.*;

// Declaro a variável 'resultado' como uma string
var resultado:Boolean;

// Defino a função que será executada quando o botão (instanciado como 'meuBotao')
meuBotao.onPress = function() {

  // Possuímos um campo de texto dinâmico instanciado como 'campoTexto', e atribuimos o valor dele à variável 'texto'
  var texto = campoTexto.text;
  // Possuímos no flash um campo de texto também, instanciado como 'campoNome', onde pegamos o nome do usuário e atribuímos o valor ditado nele à variável 'nome'
  var nome = campoNome.text;

  // Abaixo passamos os parâmetros 'nome' e 'texto' para a função javascript recebeDados(),
  // e atríbuímos a resposta da função à variável 'resultado'
  // Perceba que a função javascript deve retornar um valor booleano (true ou false, 1  ou 0)
  resultado = Boolean(ExternalInterface.call("recebeDados", nome, texto));
  // Se o resultado for 1 (true, verdadeiro), mando para o quadro 1
  if(resultado == 1){
    gotoAndPlay("quadro1");
  }
  else // Se o resultado for diferente de 1, mando para o quadro 2
  {
    gotoAndPlay("quadro2");
  }
} 

Agora a função javascript que recebe os parâmetros passados pelo flash:


function recebeDados(nome,texto){
    // Abaixo crio um elemento html contendo os dados que o usuário digitou no flash
    var novoHtml = '<div><b>Nome:</br> '+nome+'<br /><b>Comentário:</b><br />'+texto+'</div>'     // Abaixo insiro o elemento recém criado dentro da div com id 'div_resposta'     document.getElementById('div_reposta').innerHtml(novoHtml);
    // Se for encontrada a palavra 'futebol' no texto digitado pelo usuário, retorna true, se não, retorna false
    if(texto.indexOf("futebol")!=-1){
      return true;
    }else{
      return false;
    }
}

Uma coisa importante: a função javascript deve estar na mesma página que está executando o flash, ou em algum arquivo externo carregado por essa página.

O funcionamento ficou da seguinte maneira: num determinado frame do flash, o usuário vê uma campo para digitar seu nome, e um campo para digitar um texto, e um botão para enviar.

Ao enviar os dados digitados pelo usuários aparecem na página, fora do flash, numa div chamada ‘div_resposta’. Se o texto digitado pelo usuário conter a palavra ‘futebol’, o flash vai para o frame de label ‘quadro1′, se não, vai para o frame de label ‘quadro2′.

Agora liberte a sua imaginação e faça muitas coisas!

Até a próxima! Deixe um comentário!

Posts Relacionados:

Deixe seu comentário

  1. Rafa
    25, janeiro, 2010 em 14:32 | #1
    Opaa….Valeu cara, foi realmente muito util, eu precisava passar valores do Flash pro Js e funcionou perfeitamente, muito bom mesmo. Valew ^^
  1. Nenhum trackback ainda.

SEO Powered by Platinum SEO from Techblissonline