Javascript para Flash & Firefox

  • joebert
  • Sledgehammer
  • Genius
  • No Avatar
  • Registrado: Feb 10, 2004
  • Mensajes: 13455
  • Loc: Florida
  • Status: Offline

Nota Marzo 2nd, 2007, 6:09 pm

No puedo por la vida de a conseguir una película de Flash para responder a Javascript en Firefox 2.

Ive intentado usar una variable en _root
Código: [ Select ]
var myVar:Number;

Viendo que la variable
Código: [ Select ]
var callB:Function = function(prop, newval, oldval):Number {
  doSomthingWithNewval(parseInt(newval));
  return parseInt(newval);
}
this.watch("myVar", callB);
  1. var callB:Function = function(prop, newval, oldval):Number {
  2.   doSomthingWithNewval(parseInt(newval));
  3.   return parseInt(newval);
  4. }
  5. this.watch("myVar", callB);


Uso setVariable en JS
Código: [ Select ]
function getSWF(movieName) {
  if (navigator.appName.indexOf("Microsoft") != -1) {
    return window[movieName];
  }
  else {
    return document[movieName];
  }
}
getSWF('myMovie').setVariable('myVar', '0x123456');
  1. function getSWF(movieName) {
  2.   if (navigator.appName.indexOf("Microsoft") != -1) {
  3.     return window[movieName];
  4.   }
  5.   else {
  6.     return document[movieName];
  7.   }
  8. }
  9. getSWF('myMovie').setVariable('myVar', '0x123456');


Que funciona en Internet Explorer.

Ive intentado usar "mx.external.ExternalInterface.addCallback"
Código: [ Select ]
var callB:Function = function(par):Void {
  // Stuff
}
ExternalInterface.addCallback("swfSetTheme", null, callB);
  1. var callB:Function = function(par):Void {
  2.   // Stuff
  3. }
  4. ExternalInterface.addCallback("swfSetTheme", null, callB);

La llamada al método registrado con JS
Código: [ Select ]
function getSWF(movieName) {
  if (navigator.appName.indexOf("Microsoft") != -1) {
    return window[movieName];
  }
  else {
    return document[movieName];
  }
}
getSWF('myMovie').swfSetTheme(myVar);
  1. function getSWF(movieName) {
  2.   if (navigator.appName.indexOf("Microsoft") != -1) {
  3.     return window[movieName];
  4.   }
  5.   else {
  6.     return document[movieName];
  7.   }
  8. }
  9. getSWF('myMovie').swfSetTheme(myVar);


Que funciona en Internet Explorer y Opera.

Im usando "AC_FL_RunContent" para mostrar el SWF, heres lo que parece.
Observe el uso de "allowScriptAccess" & "swliveconnect".
Código: [ Select ]
AC_FL_RunContent('id','myMovie', 'name','myMovie', 'src','/portal/e107_themes/Tech9/tech9', 'movie','/portal/e107_themes/Tech9/tech9', 'width','600', 'height','180', 'allowScriptAccess','sameDomain', 'swLiveConnect','true', 'quality','high', 'codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0','pluginspage','http://www.macromedia.com/go/getflashplayer');


La "llamada" método de "ExternalInterface" funciona sin problemas en Firefox, pueden obtener Flash para llamar a un método de JS y recibir un valor de retorno sin problemas.

Yo no he sido capaz de conseguir JS hablar con Flash sin embargo, incluso si no quiere un valor de retorno.

Todo esto tiene que ver con la sincronización de la colorschemes entre el SWF y HTML / CSS.
Cuando la película comienza, este usa "ExternalInterface.call" para leer la misma cookie y erigirse como JS lee a erigirse.
JS se usa para cambiar el colorschemes en tiempo de ejecución, así que tengo que ser capaz de tener JS hablar con Flash.
Strong with this one, the sudo is.
  • Anonymous
  • Bot
  • No Avatar
  • Registrado: 25 Feb 2008
  • Mensajes: ?
  • Loc: Ozzuland
  • Status: Online

Nota Marzo 2nd, 2007, 6:09 pm

  • joebert
  • Sledgehammer
  • Genius
  • No Avatar
  • Registrado: Feb 10, 2004
  • Mensajes: 13455
  • Loc: Florida
  • Status: Offline

Nota Marzo 2nd, 2007, 7:51 pm

Resulta que la cuestión no es Flash en absoluto.

El método utilizado para obtener el archivo SWF con JS se devuelve una lista de nodos tanto con el objeto & integrar en Firefox, en lugar de un único objeto de secuencias de comandos como en otros navegadores.

Heres qué Im que utilizan para obtener referencia a los SWF en JS ahora.
El primer elemento de la lista de nodos es el objeto, el segundo es el EMBED, que es lo que Firefox está buscando.
Código: [ Select ]
function getSWF(movieName) {
  if (navigator.appName.indexOf("Microsoft") != -1) {
    return window[movieName];
  }
  else {
        if(document[movieName].length != undefined){
             return document[movieName][1];
        }
    return document[movieName];
  }
}
  1. function getSWF(movieName) {
  2.   if (navigator.appName.indexOf("Microsoft") != -1) {
  3.     return window[movieName];
  4.   }
  5.   else {
  6.         if(document[movieName].length != undefined){
  7.              return document[movieName][1];
  8.         }
  9.     return document[movieName];
  10.   }
  11. }
Strong with this one, the sudo is.
  • atrejoe
  • Born
  • Born
  • No Avatar
  • Registrado: Jun 17, 2007
  • Mensajes: 2
  • Status: Offline

Nota Junio 17th, 2007, 11:12 am

Bit de una respuesta tardía, pero tengo una pregunta adicional.

Tuve el mismo problema, mientras que el acceso a Javascript activado flash a través de JavaScript en Firefox.

Su explicación aclaró limpiando mi-acerca de en JavaScript, por lo que ahora Im seguro de que puede acceder a la película Flash en Firefox, pero no pude llamar al método Actionscript en Flash.

He hecho el método a disposición del público mediante el uso de:
Código: [ Select ]
flash.external.ExternalInterface.addCallback("methodName", instance, method);


Esto funciona en la mayoría de los navegadores (MSIE, Opera y Safari), excepto para Firefox. Cuando flash deshabilitar la activación con solo mostrar la película flash normalmente, funciona en todos los navegadores. Ambos métodos indican que el parámetro se refiere a la misma el tipo de objeto:

Código: [ Select ]
HTMLEmbedElement


¿Tuvo la misma? El método en ActionScript es un simple "vacío" método, teniendo tres cadenas como argumentos.
  • joebert
  • Sledgehammer
  • Genius
  • No Avatar
  • Registrado: Feb 10, 2004
  • Mensajes: 13455
  • Loc: Florida
  • Status: Offline

Nota Junio 17th, 2007, 4:21 pm

Sólo he tenido problema con Firefox es el uno que exige mí para ver si hay una serie regresó con la JS, si usted está recibiendo HTMLEmbed elementos regresaron No tengo ni idea de lo que podría ser ahora mismo. gif "alt =": scratchhead: "title =" #Jefe Scratch "/>

Id decir swLiveConnect o allowScriptAccess, pero el cine he utilizado antes en este hilo no está usando thoose paramaters y que funcionan bien en cada navegador.
Strong with this one, the sudo is.
  • atrejoe
  • Born
  • Born
  • No Avatar
  • Registrado: Jun 17, 2007
  • Mensajes: 2
  • Status: Offline

Nota Junio 18th, 2007, 12:27 am

Gracias por su respuesta.

Ahora mismo sólo parece ir mal al llamar la función de Body.onload.

En este momento el archivo flash no se ha inicializado. Esto parece ser una vía de doble sentido. En primer lugar, la carga de la fuente de integrar la etiqueta no retrase la body.onload caso (sólo en Firefox), aunque debería.
En segundo lugar, el desempeño de cruz Im-frame scripting, por lo que parece más difícil de ajustar el calendario.

Supongo Malos sólo tienen que ser extremadamente cuidadoso cuando se reclama la actionscript métodos.

Publicar Información

  • Total de mensajes en este tema: 5 mensajes
  • Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 27 invitados
  • No puede abrir nuevos temas en este Foro
  • No puede responder a temas en este Foro
  • No puede editar sus mensajes en este Foro
  • No puede borrar sus mensajes en este Foro
  • No puede enviar adjuntos en este Foro
 
 

© 2011 Unmelted, LLC. Ozzu® es una marca registrada de Unmelted, LLC