son prácticas programación programacion practicas node las es6 cuáles convenciones codigo buenas javascript actionscript-3 externalinterface

javascript - programacion - cuáles son las buenas prácticas de programación



Acción Actionscript3 a comunicación de JavaScript: mejores prácticas (3)

ExternalInferface fue creado para facilitar la comunicación entre JS y Flash, por lo que realmente no tiene sentido usar cualquier otra cosa. La práctica común es comprobar si está disponible primero al evaluar el valor de la propiedad ExternalInterface.available antes de realizar una llamada a algunos JS. Esta propiedad le dice si el SWF desde el que desea llamar a algunos JS está dentro de un contenedor que ofrece una interfaz externa. En otras palabras, si se usa ExternalInterface funcionará. Si no está disponible, solo usa flash.net.sendToUrl. Nunca use fscommand () ya que usa VBScript y puede causar conflictos con otro VBScript en una página. Además, solo puede enviar una cadena de argumentos con fscommand y debe dividirla en el lado JS.

En un nivel más abstracto que una pregunta anterior , en mi experiencia hay 3 formas de llamar a una función de JavaScript en una página html desde un .swf incrustado utilizando AS3: ExternalInterface, fscommand y navigateToURL.

Comparemos y contrastemos estos métodos (y tal vez otros que no hemos enumerado) y hablemos sobre los pros y los contras de cada uno. En este momento, ExternalInterface parece ser el camino a seguir en términos de flexibilidad, pero ¿es correcto para todas las situaciones? ¿Hay beneficios concretos en términos de velocidad de ejecución o algo así? Tengo curiosidad, ¿qué pensamos?


Interfaz externa

  • Puede obtener el valor de retorno de las llamadas JS-AS y AS-JS
  • Codifica tus argumentos (llamada con matrices, objetos, etc. No es necesario codificarlos)
  • Navegador cruzado
  • Defectuoso cuando envía HTML o JSON (codificación especial), se rompe internamente

getURL

  • Solo puede llamar a JS, no obtiene el valor de retorno y necesita codificar sus datos
  • Fue agradable que obsoleto y en Flash 10 se eliminó
  • Realmente se elimina, así que no lo uses;)

fscommand

  • Vamos, ExternalInterface es la solución (para 2008).

Todo depende de si desea que la comunicación sea síncrona o no, ya que ExternaInterface puede devolver datos, ya que navigatoToURL y fscommand son asíncronos y solo pueden invocar una función de JavaScript; no pueden devolver valores o una respuesta.

Desde documentos en vivo en relación con la interfaz externa:

Desde ActionScript, puede hacer lo siguiente en la página HTML:

  • Llamar a cualquier función de JavaScript.
  • Pase cualquier cantidad de argumentos, con cualquier nombre.
  • Pase varios tipos de datos (Boolean, Number, String, etc.).
  • Recibe un valor de retorno de la función de JavaScript.

Desde JavaScript en la página HTML, puede:

  • Llamar a una función de ActionScript.
  • Pasar argumentos usando la notación de llamada a función estándar.
  • Devuelve un valor a la función de JavaScript.

La clase flash.external.ExternalInterface es un reemplazo directo para la clase flash.system.fscommand .

Entonces, el uso de ExternalInterface es el método preferido o la comunicación entre flash y una función de Javascript, aunque si la llamada es meramente asincrónica, está bien usar flash.net.navigateToURL .