ExternalInterface - chamando javascript de SWF

votos
0

OI,

im tentando chamar uma função javascript do meu código ActionScript, mas não o seu trabalho;

AS3:

if (ExternalInterface.available)
  {
  try
  {
    ExternalInterface.addCallback(changeDocumentTitle,null);
  } 
  catch(error:Error)

js (dentro ficheiro velocidade usando swfobject)

function changeDocumentTitle() 
    {
        alert('call from SWF');
    }

Alguém sabe o que poderia estar acontecendo?

Publicado 19/05/2009 em 17:10
fonte usuário
Em outras línguas...                            


2 respostas

votos
7

Se você está tentando chamar uma função JS de dentro de seu aplicativo Flex, que pretende utilizar ExternalInterface.call (...) e não ExternalInterface.addCallback (...). De docs:

chamada public static function (functionName: String, ... arguments): *

Chama uma função exposta pelo contêiner Flash Player, transmitindo zero ou mais argumentos. Se a função não está disponível, a chamada retorna null; caso contrário devolve o valor fornecido pela função. Recursão não é permitida no Opera ou Netscape; nestes navegadores uma chamada recursiva produz uma resposta nula. (Recursão é suportado em navegadores Internet Explorer e Firefox.)

Se o recipiente é uma página HTML, este método chama uma função JavaScript em um elemento script.

http://livedocs.adobe.com/flex/3/langref/flash/external/ExternalInterface.html

addCallback () é usado se você deseja expor uma função do ActionScript a partir de seu aplicativo Flash para o recipiente HTML para que ele possa ser invocado via JavaScript.

Respondeu 19/05/2009 em 20:52
fonte usuário

votos
0

No sistema local, a comunicação entre o SWF e Javascript tende a ser dificultada por questões de segurança. Você pode reconfigurar seu flash para permitir que algumas dessas comunicações através do "configurações manager".

Ele também pode ser um problema com "allowscriptacces" não sendo definido onde você incorporar o objeto flash.

Outro problema pode ser que o flash tenta chamar javascript antes do javascript está carregado. A coisa ordem de inicialização pode ser muito chato.

Respondeu 19/05/2009 em 18:36
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more