如何在HTML页面中维护SWF文件的大小?

时间:2009-07-17 06:54:41

标签: javascript jquery html flash webpage

我有许多SWF文件,我使用HTML Object标记包含在我的网页中。它的工作正常但是,我无法维护我的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 tag中给出的大小,则SWF文件图形会失真并且看起来不太好。

任何人都可以告诉我,如果文件大小超过600x400,如果文件大小小于600x400,我怎么能自动调整SWF文件的大小,然后这个大小将适用,否则文件应该以原始大小显示。

我看过一些游戏网站(比如miniclip.com)做同样的事情,他们在游戏页面上显示游戏(小或大)的原始大小,他们是否在数据库表中维护文件的高度和宽度或其他什么?

有没有办法在HTML中使用或使用JQuery或javascript?

1 个答案:

答案 0 :(得分: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;
    }
}