2009-09-13 11 views
11

Estoy tratando de llamar a una función Flash (AS3) desde Javascript. Cuando se ejecuta el código, aparece el error "Error: excepción no detectada: método de llamada de error en NPObject". A partir de mi día de buscar en Google, esto parece ser un asunto de seguridad, y he hecho todo lo que puedo encontrar, pero el error aún aparece.Javascript -> Flash throwing "Método de llamada de error en NPObject"

Algunos detalles:
* Esto ocurre con los reproductores Flash 9 y Flash 10.
* El swf está en el mismo dominio que el archivo php que lo carga y que contiene el javascript que intenta llamar a la función Flash.
* Estoy usando sfwobject2.2 para cargar el archivo SWF, así:

var flashvars = {};
var params = {};
var params = {menu: false, bgcolor: "#ffffff", allowScriptAccess: "always"};
swfobject.embedSWF("/path/to/swf", "id", "480", "310", "9.0.0", null, flashvars, params, attributes);

película
My Flash está haciendo lo allowDomain, correctamente por lo que yo puedo decir:

Security.allowDomain("www.mydomain.com");

* Sé que ExternalInterface.addCallback está configurado correctamente: cuando lo desactivo, aparece el error "no such such function" en lugar del reclamo de NPObject.

Esto me está volviendo completamente loco, y simplemente no puedo encontrar la manera de corregirlo. ¿Algún consejo por ahí?

+0

¿Alguna vez encontró una respuesta? Tengo el mismo problema. – UltimateBrent

Respuesta

10

La respuesta que encontré fue que arroja ese error por muchas razones. La mía era que no estaba enviando la cantidad correcta de argumentos para la función a la que llamaba.

+2

¿Encontró un buen documento que describe las diversas razones posibles? Cuidado de compartir? – Fiid

+2

El punto es que todos los errores causan esta salida. Podría estar llamando a la función incorrecta, podría ser un número incorrecto de params, podría ser la seguridad. – UltimateBrent

+0

¿Alguna idea sobre por qué este error puede ocurrir intermitentemente? El código en el que estoy trabajando funciona a veces y no a otros, con el mismo conjunto de datos, etc. – Fiid

3

Descubrí que instalando la versión de depuración del reproductor flash del sitio de Adobe, obtendría un cuadro de diálogo con la excepción flash real en lugar del error NPObject, por lo que podría ser un primer paso útil para calcular qué está pasando realmente.

En mi caso, parece que de alguna manera, hay una cantidad incorrecta de argumentos que se pasan, y no estoy seguro de cómo esto está sucediendo (intermitentemente), pero eso es para otra pregunta. :)

Cuestiones relacionadas