1

我有许多 SWF 文件,我使用 HTML 对象标记将它们包含在我的网页中。它工作正常,但我无法保持我的 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 标记中是固定的。我希望当大小超出某个范围时,将恒定大小应用于文件,否则文件将以原始大小显示。

如果有一个文件的大小小于我在对象标记中给出的大小,那么 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 回答