Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Wagner Martins - SC

flash + javascript

Recommended Posts

Tenho um código em ajax para abrir um link em uma determinada div. Quando faço o link com html ele funciona, mais quando chamo a função ajax por action script da erro de segurança no botão do flash.

 

ajax:

var carregar;

function ObjAjax(){
  try{return new XMLHttpRequest()}
  catch(e){try{return new ActiveXObject("Msxml2.XMLHTTP")}
  catch(e){return new ActiveXObject("Microsoft.XMLHTTP")}}
  return null;
}

function navegar(page){
  ajax = new ObjAjax();
  var div = document.getElementById("sua_div");

  ajax.onreadystatechange = function(){
	if(ajax.readyState == 1){div.innerHTML="<img src=ajax_preloader.gif /> Carregando...";}
	if(ajax.readyState == 4){div.innerHTML=ajax.responseText;}

  }
  ajax.open("GET",page,true);
  ajax.send(null);
}

action script

on (release)
{
	gotoAndPlay(61);
	getURL("java script:navegar('http://www.site.com.br/contato.php');")
}

link em html que chama a função ajax (esse funciona)

<a href="#" onclick="navegar('contato.php');"> title="Fale conosco" target="abre">Contato</a>

 

O erro deve estar no action script, como eu faço para chamar a função ajax através do action script?

 

Esse eh o erro que esta dando no ajax

 

Erro de segurança: conteúdo em [url="http://site.com.br/"]http://site.com.br/[/url] não pode carregar dados de [url="http://www.site.com.br/texto_apresentacao.php"]http://www.site.com.br/texto_apresentacao.php[/url].

Erro: uncaught exception: [Exception... "Access to restricted URI denied"  code: "1012" nsresult: "0x805303f4 (NS_ERROR_DOM_BAD_URI)"  location: "http://ipc-pesquisas.com.br/js/flashfix.js Line: 37"]

Compartilhar este post


Link para o post
Compartilhar em outros sites

Legal, não sabia que existia essa função.

 

Mais como isso é novidade pra mim preciso de mais uma ajudinha... :)

 

Não estou conseguindo chamar a função ajax pelo ExternalInterface.

 

Ali no exemplo do link postato ele chama a função assim assim

mensagem_txt.text = String(ExternalInterface.call("FlashJavaScript", mensagem_txt.text));

e como eu faço pra mim chamar minha função no ExternalInterface ?

getURL("java script:navegar('http://www.ipc-pesquisas.com.br/texto_apresentacao.php');")

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pra usar o external interface é algo assim:

 

Sua função, no caso, se chama navegar certo? Acredito que ela esteka no html.

 

Então se usa o seguinte código:

 

ExternalInterce.call("navegar", "http://www.urlquevocequer.com");

 

No caso, você teria de configurar o javascript com os parametros (nesse caso, só a URL) pra que o flash possa chamar a função.

 

Qualquer coisa posta aí ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esta dando erro no action script agora, olha como estou fazendo...

 

// Importando pacote external.
import flash.external.*;
// Vamos usar o método onRelease, que é executado depois de o botão ser pressionado.
onRelease = function() {
	
	gotoAndPlay(11);
	
	// No método call() definimos o método JavaScript a ser executado e o valor a ser enviado (nesse caso, o valor da caixa de texto). O método call() retorna o valor retornado pelo método JavaScript, o qual estamos exibindo direto na caixa de texto.
	ExternalInterce.call("navegar", "http://www.ipc-pesquisas.com.br/texto_apresentacao.php");
	// FlashJavaScript é o nome do método JavaScript a ser executado no navegador.
};

esse eh o erro q esta dando:

Imagem Postada

 

Valeu AMZ!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Simples, de acordo com a imagem, você está colocando a ação no botão, o correto é colocar na linha de tempo:

 

import flash.external.*;

nome do botão.onRelease...

 

Nem mesmo só o onRelease (sem o import flash.external.*; ) funcionaria assim.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ficaria assim?

 

// Importando pacote external.
import flash.external.*;
// Vamos usar o método onRelease, que é executado depois de o botão ser pressionado.
nome_do_botão.onRelease = function() {
	
	gotoAndPlay(11);
	
	// No método call() definimos o método JavaScript a ser executado e o valor a ser enviado (nesse caso, o valor da caixa de texto). O método call() retorna o valor retornado pelo método JavaScript, o qual estamos exibindo direto na caixa de texto.
	ExternalInterce.call("navegar", "http://www.ipc-pesquisas.com.br/texto_apresentacao.php");
	// FlashJavaScript é o nome do método JavaScript a ser executado no navegador.
};

Valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ficaria assim?

 

// Importando pacote external.
import flash.external.*;
// Vamos usar o método onRelease, que é executado depois de o botão ser pressionado.
nome_do_botão.onRelease = function() {
	
	gotoAndPlay(11);
	
	// No método call() definimos o método JavaScript a ser executado e o valor a ser enviado (nesse caso, o valor da caixa de texto). O método call() retorna o valor retornado pelo método JavaScript, o qual estamos exibindo direto na caixa de texto.
	ExternalInterce.call("navegar", "http://www.ipc-pesquisas.com.br/texto_apresentacao.php");
	// FlashJavaScript é o nome do método JavaScript a ser executado no navegador.
};

Valeu

Sim e não...

 

O "nome do botão" é só um exemplo, você tem de usar o nome de instancia que você deu ao botão, e não esquecer de colocar o código na lina de tempo e não direto no botão.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Depois q coloquei o action script na linha tempo e dei um nome a instância do botão, ele naum deu mais erro, só aque agora o ajax não esta funcionando da uma olhada:

 

http://ipc-pesquisas.com.br/index2.htm

 

esse é o codigo ajax que estou usando:

 

var carregar;

function ObjAjax(){
  try{return new XMLHttpRequest()}
  catch(e){try{return new ActiveXObject("Msxml2.XMLHTTP")}
  catch(e){return new ActiveXObject("Microsoft.XMLHTTP")}}
  return null;
}

function navegar(page){
  ajax = new ObjAjax();
  var div = document.getElementById("sua_div");

  ajax.onreadystatechange = function(){
	if(ajax.readyState == 1){div.innerHTML="<img src=ajax_preloader.gif /> Carregando...";}
	if(ajax.readyState == 4){div.innerHTML=ajax.responseText;}

  }
  ajax.open("GET",page,true);
  ajax.send(null);
}

Onde sera que esta o erro no ajax ou no javascript? Porque qdo uso html o ajax funciona

 

action script:

stop();
// Importando pacote external.
import flash.external.*;
// Vamos usar o método onRelease, que é executado depois de o botão ser pressionado.
apre.onRelease = function() {
	
	gotoAndPlay(11);
	
	// No método call() definimos o método JavaScript a ser executado e o valor a ser enviado (nesse caso, o valor da caixa de texto). O método call() retorna o valor retornado pelo método JavaScript, o qual estamos exibindo direto na caixa de texto.
	ExternalInterce.call("navegar", "http://www.ipc-pesquisas.com.br/texto_apresentacao.php");
	// FlashJavaScript é o nome do método JavaScript a ser executado no navegador.
};

Compartilhar este post


Link para o post
Compartilhar em outros sites

O correto é ExternalInterface e não ExternalInterce.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hahuauhaauh cabeça minha, escrevi errado mesmo o ExternalInterface.

 

Achu q agora ali no actionscript esta certo, esta dand erro agora eh no ajax, mais isso tenho q postar o erro na seção de Ajax neh, pois essa eh de flash e action script. Mais de qualquer forma, vou postar onde esta acusando erro no ajax...

 

var carregar;

 

function ObjAjax(){
  try{return new XMLHttpRequest()}
  catch(e){try{return new ActiveXObject("Msxml2.XMLHTTP")}
  catch(e){return new ActiveXObject("Microsoft.XMLHTTP")}}
  return null;
}

function navegar(page){
  ajax = new ObjAjax();
  var div = document.getElementById("sua_div");

  ajax.onreadystatechange = function(){
	if(ajax.readyState == 1){div.innerHTML="<img src=ajax_preloader.gif /> Carregando...";}
	if(ajax.readyState == 4){div.innerHTML=ajax.responseText;}

  }
  ajax.open("GET",page,true);
  ajax.send(null);
}

esta acusando erro esta aqui

 

ajax = new ObjAjax();

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.