2009-09-13 3 views
11

Ich versuche, eine Flash (AS3) -Funktion von Javascript aufzurufen. Wenn der Code ausgeführt wird, erhalte ich den Fehler "Fehler: nicht abgefangene Ausnahme: Fehler, Methode für NPObject aufzurufen!" Von dem Tag an, an dem ich herumlogge, scheint dies eine Sicherheitsfrage zu sein, und ich habe alles getan, was ich finden kann, aber der Fehler kommt immer noch auf.Javascript -> Flash werfen "Fehler beim Aufrufen von Methode auf NPObject"

Einige Details:
* Dies geschieht sowohl mit Flash 9 und Flash 10-Player.
* Das swf ist in der gleichen Domain wie die PHP-Datei, die es lädt und das Javascript enthält, das versucht, die Flash-Funktion aufzurufen.
* I sfwobject2.2 bin mit der SWF-Datei zu laden, etwa so:

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);


Mein Flash-Film die allowDomain Sache tut, richtig, so weit wie ich kann sagen:

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

* Ich weiß, dass das ExternalInterface.addCallback ordnungsgemäß eingerichtet ist - wenn ich es deaktiviere, erhalte ich einen Fehler "keine solche Funktion" anstelle der NPObject-Beschwerde.

Das macht mich total verrückt, und ich kann einfach nicht herausfinden, wie ich es korrigieren kann. Irgendein Rat da draußen?

+0

Haben Sie jemals eine Antwort gefunden? Ich habe das gleiche Problem. – UltimateBrent

Antwort

10

Die Antwort, die ich fand, war, dass es diesen Fehler aus vielen Gründen wirft. Mir war, dass ich nicht die richtige Anzahl von Argumenten für die Funktion, die es aufgerufen hat, eingesendet habe.

+2

Haben Sie ein gutes Dokument gefunden, in dem die verschiedenen Gründe aufgeführt sind? Möchten Sie teilen? – Fiid

+2

Der Punkt ist, dass alle Fehler diesen einen Ausgang verursachen. Könnte die falsche Funktion aufrufen, könnte falsche Anzahl von Params sein, könnte Sicherheit sein. – UltimateBrent

+0

Irgendwelche Ideen, warum dieser Fehler intermittierend auftreten könnte? Der Code, an dem ich gerade arbeite, funktioniert manchmal und nicht mit anderen, mit dem gleichen Datensatz usw. – Fiid

3

Ich habe festgestellt, dass ich durch die Installation der Debugging-Version des Flash-Players von der Adobe-Website ein Dialogfeld mit der tatsächlichen Flash-Ausnahme anstelle des NPObject-Fehlers erhalten würde. Dies könnte ein hilfreicher erster Schritt sein heraus, was eigentlich los ist.

In meinem Fall sieht es irgendwie so aus, dass eine falsche Anzahl von Argumenten übergeben wird, und ich bin mir nicht sicher, wie das passiert (zeitweise), aber das ist eine andere Frage. :)

Verwandte Themen