2009-03-29 12 views
0

Ich verwende SWFObject, um Flash auf meiner Website einzubetten.Firefox, wmode und fscommand

var so = new SWFObject("file.swf", "file", "100%", "100%", "8", "#FFFFFF"); 
so.addParam("wmode", "opaque"); 
so.addParam("allowscriptaccess", "always"); 
so.write(container); 

Dies wirkt wie ein Zauber in allen Browsern, wie weit kann ich sagen, aber ich bin auch fscommand von Blitz und so habe ich eine Funktion:

function file_DoFSCommand(command, args) { 
    alert("It works!"); 
} 

Und das auch funktioniert in allen Browsern, die ich getestet habe, außer Firefox unter Windows, wo der file_DoFSCommand nicht aufgerufen wird (aber der Flash wird angezeigt). Firefox Mac und andere Browser zeigen "Es funktioniert!" wie erwartet. Sehr eigenartig. Wenn ich "wmode", "opaque" entferne, funktioniert es plötzlich, aber dann kommt mein CSS-Menü unter den Flash, also ist das keine Option. wmode = transparent scheint nichts zu ändern.

Einstellung der so.addParam ("allowscriptaccess", "nie"); bewirkt, dass sich die anderen Browser bei aktiviertem wmode wie FF verhalten.

Irgendwelche Vorschläge, warum FF nicht funktioniert?

Antwort

1

@ Theo.T, danke für den Tipp. Es löste mein Problem zwar nicht, aber nach der Verwendung von ExternalInterface zu suchen führte mich zu einer Seite, die sagte, IE würde keine Anrufe von Flash bekommen, wenn der Container versteckt war. Mein Behälter wurde nicht versteckt, aber die Höhe auf 0 gesetzt wurde:

<div id="flashcontainer" style="height:0"> 

die Höhe einstellen, das Problem 1px gelöst und Firefox nun erfolgreich empfängt die Anrufe von Flash-

+0

Ha, das ist interessant. –

+0

Das funktionierte für mich (und speicherte auch meinen Speck), danke :) – soulBit

0

Zuerst, versuchen Sie, ExternalInterface anstelle von FSCommand (abgeschrieben irgendwie). Es gibt bereits viele Beispiele in SO.