Jump to content
DinhoPHP

Acessar funções ou métodos no Actions Script com JavaScript

Recommended Posts

Olá.

Preciso urgentemente acessar uma função ou método no Action Script com o JavaScript. Gostaria de saber se é possível, desde já, agradeço!

Share this post


Link to post
Share on other sites

É possível sim! Segue um exemplo antigo que eu tinha feito:

package{

import flash.events.*;
import flash.external.
ExternalInterface;
import flash.text.TextField;
import flash.utils.Timer;

public class interagindoComJS{

public var mensagem_txt:TextField;
public var recipiente_txt:TextField;

public function interagindoComJS( mensagem_txt:TextField, recipiente_txt:TextField ){

                        this.mensagem_txt = mensagem_txt;
                        this.recipiente_txt = recipiente_txt;

                        if( ExternalInterface.available ){

                                try{

                                        ExternalInterface.addCallback( "recebeJs", recebeJsFunc );

                                        if( this.checaOk() ) {

                                                this.recipiente_txt.appendText( "Ok, pode interagir.\n" );

                                        } else {

                                                this.recipiente_txt.appendText( "Aguardando o JS...\n");
                                                var timer_tmp:Timer = new Timer(100,0);
                                                timer_tmp.addEventListener( TimerEvent.TIMER, this.chegaJS );
                                                timer_tmp.start();

                                        }

                                } catch ( erro:SecurityError ){

                                        this.recipiente_txt.appendText( "Erro[SecurityError]: " +
erro.message + "\n");

                                } catch ( erro:Error ){

                                        this.recipiente_txt.appendText( "Erro: " + erro.message + "\n");

                                }

                        } else {

                                this.recipiente_txt.appendText( "ExternalInterface não está disponível." );

                        }

                }

                public function recebeJsFunc( str:String ):void{

                        this.recipiente_txt.appendText( "JS mensagem: "+ str + "\n" );

                }

                public function checaOk():Boolean{

                        var ok:Boolean = ExternalInterface.call( "okJS" );
                        return ok;

                }

                public function chegaJS( e:TimerEvent ):void{

                        this.recipiente_txt.appendText( "Aguarde um momento...\n" );
                        var ok:Boolean = checaOk();

                        if ( ok ){

                                this.recipiente_txt.appendText( "Agora já pode interagir!\n" );
                                Timer(e.target).stop();

                        }

                }

                public function enviaMensagem( event:MouseEvent ):void{

                        if ( ExternalInterface.available ){

                                ExternalInterface.call( "recebeMensAs", this.mensagem_txt.text );
                                this.mensagem_txt.text = "";

                        }

                }

        }
}

//USO
import interagindoComJS;

var inicia_icjs:interagindoComJS = new interagindoComJS( mensagem_txt,
recipiente_txt );
enviar_bt.addEventListener( MouseEvent.CLICK, inicia_icjs.enviaMensagem );

//======================================================= HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
        <head>
                <title>Interação Entre JS e AS 3.0</title>
                <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

 <script language="JavaScript">

     var ok = false;

     function okJS() {

         return ok;

     }

     function inicia() {

         ok = true;
         document.forms[ "oform" ].mensagens.value += "\n" + "Pronto!\n";

     }

     function oSWF( name_swf ) {

         if ( navigator.appName.indexOf( "Microsoft" ) != -1 ) {

             return window[ name_swf ];

         } else {

             return document[ name_swf ];

         }

     }

     function enviaParaAs( str ) {

         oSWF( "meu_swf" ).recebeJs( str );

     }

     function recebeMensAs( str ) {

         document.forms[ "oform" ].mensagens.value += "AS mensagem: "
+ str + "\n";

     }

 </script>

        </head>
<body onload="inicia();">

        <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
             id="meu_swf" width="550" height="400"
             codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab">
         <param name="movie" value="meu_swf.swf" />
         <param name="quality" value="high" />
         <param name="bgcolor" value="#869ca7" />
         <param name="allowScriptAccess" value="sameDomain" />

         <embed src="meu_swf.swf" quality="high" bgcolor="#869ca7"
             width="550" height="400" name="meu_swf" align="middle"
             play="true" loop="false" quality="high"
allowScriptAccess="sameDomain"
             type="application/x-shockwave-flash"
             pluginspage="http://www.macromedia.com/go/getflashplayer">
         </embed>

<br><br>

   <form name="oform" onsubmit="return false;">

         <input type="text" id="texto" name="texto" value="" />
         <input type="button" value="OK" onclick="enviaParaAs(
this.form.texto.value );this.form.texto.value='';" /><br />
         <textarea cols="65" rows="7" name="mensagens"
readonly="true"></textarea>

     </form>

        </body>

</html>

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By fabioamorais
      Ola pessoal, sou novo aqui no fórum e também no mundo da programação. 

      Estou criando um sistema de cadastro de clientes em PHP 7 e mysql
      para meu serviço para fins de organização, tenho ja pronto o sistema de cadastro e edição do cliente, tenho login por usuário e senha.
      preciso colocar nesse sistema uma forma que registre a ação e o usuário que fez a ação quando houver uma alteração no cadastro.
      exemplo;
      O usuario (jose) alterou o status de analise para concluído .
      o usuario (pedro) alterou a localização de mesa para armario.
      e que fosse exibido como um tipo de histórico de eventos no próprio cadastro do cliente.
      e nesse campo se ainda tiver como add cometários.
      Usuario (jose): Precisa entrar em contato com o cliente francisco. 
      Usuario (pedro): cliente foi avisado e está sabendo.
       
      quem souber uma forma de fazer isso, ficaria muito grato.

    • By lamorim1904
      Caros, boa tarde!
       
      Primeiramente me desculpem se estou abrindo tópico repetido ou de maneira errada, procurei aqui no fórum mas talvez a forma que estou procurando ou a minha falta de conhecimento sobre a área não está me permitindo encontrar a solução.
      Não entendo quase NADA de programação e estou realizando um projeto que me cobra um pouco neste sentido, vou tentar explicar:
       
      Estou criando um hotspot inteligente onde o próprio cliente se cadastra, ele preenche um formulário e posterior a isso eu libero a conexão dele.
      O meu problema está depois que ele cria o seu cadastro, as informações vão para meu banco de dados mas nao retornam ao cliente, portanto a conexão não é liberada.
       
      Eu encontrei uma solução mas não estou conseguindo usa-la da maneira que gostaria, após usuário se cadastrar, eu direciono ele para a pagina de login e senha e caso ele digite os dados que ele acabou de preencher, a conexão é liberada. 
       
      Eu gostaria de automatizar esse processo, identificar a variavel X que eu usei para escrever no meu banco de dados e inseri-la no campo de usuario e senha e se possivel submeter a informação para o usuario nem ver essa tela de login e senha. Sabem me dizer se tem como?
       
      Para ficar mais claro, vou postar os codigos;
       
      <NESTE PONTO O CLIENTE JA PREENCHEU O CADASTRO E EU USO AS VARIAVEIS PARA ESCREVER NO MEU BANCO DE DADOS>
      <EU GOSTARIA DE USAR A VARIAVEL $MOBILE COMO USUARIO E SENHA NA PARTE DE JAVA ABAIXO>

      $sql = "INSERT INTO radcheck (UserName, Attribute, op, Value) VALUES ";
      $sql .= "('$MOBILE', 'Cleartext-Password', ':=', '$MOBILE')";
      mysqli_query($strcon,$sql) or die("Erro ao tentar cadastrar registro");

      $sql = "INSERT INTO radreply (UserName, Attribute, op, Value) VALUES ";
      $sql .= "('$MOBILE', 'Mikrotik-Rate-Limit', ':=', '512k/1024k')";
      mysqli_query($strcon,$sql) or die("Erro ao tentar cadastrar registro");
      mysqli_close($strcon);
      echo "Cliente cadastrado com sucesso!";
      ?>
      <html>
      <head><title>...</title></head>
      <body>
      $(if chap-id)
      <noscript>
      <center><b>JavaScript required. Enable JavaScript to continue.</b></center>
      </noscript>
      $(endif)
      <center>If you are not redirected in a few seconds, click 'continue' below<br>
      <form name="redirect" action="http://201.82.110.3/mkloginteste2.php" method="post">
      <input type="hidden" name="mac" value="$(mac)">
      <input type="hidden" name="ip" value="$(ip)">
      <input type="hidden" name="username" value="$MOBILE">
      <input type="hidden" name="link-login" value="$(link-login)">
      <input type="hidden" name="link-orig" value="$(link-orig)">
      <input type="hidden" name="error" value="$(error)">
      <input type="hidden" name="chap-id" value="$(chap-id)">
      <input type="hidden" name="chap-challenge" value="$(chap-challenge)">
      <input type="hidden" name="link-login-only" value="$(link-login-only)">
      <input type="hidden" name="link-orig-esc" value="$(link-orig-esc)">
      <input type="hidden" name="mac-esc" value="$(mac-esc)">
      <input type="submit" value="continue">
      </form>
      <script language="JavaScript">
      <!--
         document.redirect.submit();
      //-->
      </script></center>
      </body>
      </html>
    • By AMBaumruck
      Olá pessoas! Eu estou aprendendo JavaScript. Sou bem iniciante nessa área e preciso de um help. 
      Eu estou tentando desenvolver um código onde a pessoa digita o país de origem dela. Se ela escrever BRASIL, deve aparecer Brasileiro e, se ela digitar qualquer outro país, deve aparecer ESTRANGEIRO.
      O que eu fiz até agora foi isso:
       
      <!DOCTYPE html>
      <html lang="pt-BR">
      <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <meta http-equiv="X-UA-Compatible" content="ie=edge">
          <title>Nacionalidade</title>
      </head>
      <body>
          <h1>Sistema de Identificação de Nacionalidade.</h1>
          País de origem: <input type="text" name="paísdeorigem" id="paísdeorigem">
          <input type="button" value="Verificar" onclick="Verificar()">
          
          
      </body>
      <script>
          function Verificar(){
              var paísdeorigem = window.document.getElementById('paísdeorigem')
              if(paísdeorigem == "Brasil"){
                  document.write("Você é <strong>BRASILEIRO.</strong>")
                  paísdeorigem.innerHTML
                      if(paísdeorigem!="Brasil"){
                          document.write("Você é <strong>ESTRANGEIRO.</strong>")
                      paísdeorigem.innerHTML
                      }
                  
                  }
              }
      </script>
      </html>
       
      Quem puder me ajudar eu agradeço!! 
      Valeu!!!
    • By Thiago Az
      Pessoal bom dia a todos.
       
      Gostaria de uma ajuda de vocês tem um array JavaScript onde tenho os valores das cidades repetidos preciso agrupar os usuários da mesma cidade e eliminar as cidades repetidas
       
      Exemplo do meu código:
       
      var pessoas = [ { nome: 'Maria', cidade: 'São Paulo' }, { nome: 'João', cidade: 'São Paulo' }, { nome: 'Alberto', cidade: 'Rio' }, { nome: 'Matheus', cidade: 'Curitiba' }, { nome: 'kalebe', cidade: 'Belo Horizonte' }, { nome: 'Isaac', cidade: 'Rio' }, { nome: 'Batista', cidade: 'Curitiba' }, { nome: 'Carmem', cidade: 'Rio' }, ];  
      Quero que o retorno seja assim:
       
      São Paulo
      Maria
      João
       
      Rio
      Alberto
      Isaac
      Carmen
       
      Sem que eu tenha Rio ou outra cidade se repetindo várias vezes. Alguém tem alguma sugestão?
       
      Desde já agradeço a todos.
      Grato.
    • By skti
      Boa tarde, me chamo Augusto e gostaria de saber como preencher o campo automaticamente seguindo o formato descrito no título.. por exemplo, ao digitar os 3 primeiros números do cpf, o '.' (ponto) ser preenchido automaticamente. Sou iniciante e o mais perto que cheguei foi criar um input que, quando são digitados 3 caracteres, apareça um '-' (hífen), ficando xxx- por exemplo, porém, de maneira incorreta pois ao continuar digitando o texto ficava xxxxxx- ao inves de xxx-xxx e assim por diante. Agradeço quem puder ajudar! :)
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.