1

HTML Object タグを使用して Web ページに含めた SWF ファイルが多数あります。正常に動作していますが、SWF ファイルのサイズを維持できません。SWF ファイルの次のコードがあります。

<object id="example_flashGame" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="600" height="400">
        <param name="movie" value="/video/swf/fun/funny-baby.swf" />
        <param name="allowScriptAccess" value="always" />
        <param name="loop" value="false" />
        <param name="menu" value="false" />
        <param name="quality" value="high" />
        <param name="wmode" value="window" />

        <embed name="example_flashGame" src="/video/swf/fun/funny-baby.swf" width="600" height="400" allowScriptAccess="always" loop="false" menu="false" quality="high"  wmode="window" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed>
 </object>

現在、SWF ファイルのサイズ (幅と高さ) は、上記のコードの object タグで固定されています。サイズが一定の範囲を超えた場合、一定のサイズがファイルに適用されます。それ以外の場合、ファイルは元のサイズで表示されます。

object タグで指定したサイズよりも小さいサイズのファイルがある場合、SWF ファイルのグラフィックがゆがみ、見栄えがよくありません。

ファイル サイズが 600x400 未満の場合、SWF ファイルのサイズを自動にする方法を教えてください。サイズが 600x400 を超える場合、このサイズが適用されます。それ以外の場合、ファイルは元のサイズで表示されます。

一部のゲーム サイト (miniclip.com など) がまったく同じことを行っているのを見たことがあります。それらは、プレイ ページにゲームの元のサイズ (小さいまたは大きい) を表示し、DB テーブルなどでファイルの高さと幅を維持しますか? ?

HTMLで、またはJQueryまたはjavascriptを使用してこれを行う方法はありますか??

4

1 に答える 1

1

JS から Flash ステージのサイズを単純に検出する方法はありません。ステージ サイズを設定するには、Flash 内から JS 関数を呼び出したほうがよいでしょう。

したがって、このコードを Flash ムービー (AS2) に挿入する必要があります。

import flash.external.ExternalInterface;
ExternalInterface.call("resizeFlash", Stage.width, Stage.height);

次に、HTML ページには、Flash 要素のサイズを変更する JS 関数があります。

var max_flash_width = 800;
var max_flash_height = 600;

function resizeFlash(w, h)
{
    // force the w and h to be within limits set above
    w = Math.min(w, max_flash_width);
    h = Math.min(h, max_flash_height);
    // then resize the flash element using w and h
    var flash_elem = document.getElementById("example_flashGame");
    flash_elem.width = w;
    flash_elem.height = h;
    if (navigator.userAgent.toLowerCase().indexOf("safari") !=- 1) {
        var flash_elem = document.getElementById("example_flashGame");
        flash_elem.width = w;
        flash_elem.height = h;
    }
}
于 2009-07-17T07:40:44.167 に答える