2009-07-17 91 views
1

我有許多SWF文件,這些文件是我使用HTML Object標記包含在我的網頁中的。它的工作正常,但我無法保持我的SWF文件的大小。我有SWF文件的以下代碼。如何維護HTML頁面中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,如果文件大小超過600x400,那麼如何將SWF文件的大小設置爲自動,那麼這個大小將適用,否則文件應該以其原始大小顯示。

我看過一些遊戲網站(比如miniclip.com)做的事情完全一樣,它們在播放頁面上顯示那裏遊戲的原始大小(小或大),它們是否在數據庫中維護文件的高度和寬度表或其他東西?

有什麼辦法可以在HTML或使用JQuery或JavaScript做到這一點?

回答

1

沒有辦法簡單地從JS中檢測Flash stage的大小。你最好從Flash裏面調用一個JS函數來設置舞臺大小。

所以,你必須把Flash影片代碼(AS2):

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

然後在HTML頁面中你有JS功能調整Flash元素:

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; 
    } 
} 
+0

我無法修改源代碼,因爲我只有SWF文件。 – Prashant 2009-07-17 17:34:22