以下の関数を使用して、フラッシュオブジェクトを表示するコードを作成します。オリジナルのフラッシュサイズは320x240ですが、200x150と表示したいので、パラメータ幅200、高さ150の関数を使用します。すべてのブラウザは正常に動作しますが、クロムは正しく動作しません。 200x151(200x151サイズのコードを調べる)と表示されます。どうして?Chromeのスケールが正しく点滅しない
function getFlashCode(params)
{
debug('getFlashCode');
var defaultParams = {movie: '', flashvars: {}, width:'', height: ''};
for (var key in defaultParams)
{
if (params[key] === undefined)
params[key] = defaultParams[key];
}
var flashvars = '';
for (var key in params.flashvars)
flashvars += encodeURIComponent(key) + '=' + encodeURIComponent(params.flashvars[key]) + '&';
var id = "fl" + Math.random();
var code="";
code += " <object classid=\"clsid:d27cdb6e-ae6d-11cf-96b8-444553540000\" width=\"" + params.width + "\" height=\"" + params.height + "\" align=\"middle\" id=\"" + id + "\">";
code += " <param name=\"movie\" value=\"" + params.movie + "\" \/>";
code += " <param name=\"quality\" value=\"high\" \/>";
code += " <param name=\"play\" value=\"true\" \/>";
code += " <param name=\"loop\" value=\"true\" \/>";
code += " <param name=\"wmode\" value=\"transparent\" \/>";
code += " <param name=\"scale\" value=\"showall\" \/>";
code += " <param name=\"menu\" value=\"true\" \/>";
code += " <param name=\"devicefont\" value=\"false\" \/>";
code += " <param name=\"salign\" value=\"\" \/>";
code += " <param name=\"allowScriptAccess\" value=\"always\" \/>";
code += " <param name=\"flashvars\" value=\"" + flashvars + "\" \/>";
code += " <!--[if !IE]>-->";
code += " <object type=\"application\/x-shockwave-flash\" flashvars=\""+ flashvars + "\" data=\"" + params.movie + "\" width=\"" + params.width + "\" height=\"" + params.height + "\">";
code += " <param name=\"movie\" value=\"" + params.movie + "\" \/>";
code += " <param name=\"quality\" value=\"high\" \/>";
code += " <param name=\"play\" value=\"true\" \/>";
code += " <param name=\"loop\" value=\"true\" \/>";
code += " <param name=\"wmode\" value=\"transparent\" \/>";
code += " <param name=\"scale\" value=\"showall\" \/>";
code += " <param name=\"menu\" value=\"true\" \/>";
code += " <param name=\"devicefont\" value=\"false\" \/>";
code += " <param name=\"salign\" value=\"\" \/>";
code += " <param name=\"allowScriptAccess\" value=\"always\" \/>";
code += " <param name=\"flashvars\" value=\"" + flashvars + "\" \/>";
code += " <\/object>";
code += " <!--<![endif]-->";
code += " <\/object>";
return code;
}
ところで、SWFObjectを使用してFlashファイルを埋め込む方がよい場合があります。それは汎用性があり、ブラウザとの互換性を十分に考慮します。 – Kos
私は、Pepper FlashがChrome用のデフォルトのFlashプラグインであるようになったので、FlashとChromeで奇妙なことに気づいてきました。これが別のケースかどうか疑問に思う?すでにChrome用にいくつかのFlashプラグインがインストールされている可能性がありますが、Pepper Flashを無効にして、ここに行くことでバグの少ないバージョンを試すことができます:chrome:// plugins –