2012-02-08 80 views
1

我試圖做一些有點不同,我的Flash嵌入在HTML頁面上。我在右鍵單擊上下文菜單中添加了一個選項,以在兩種縮放模式之間切換:noscaleexactfit。當我將swf作爲獨立運行而不是在HTML頁面中時,這起作用。有沒有人有任何想法,如果有一種方法來嵌入瑞士法郎和動態更改比例模式?也許100%寬度和高度嵌入?不過,我試過,它打破了嵌入的JavaScript代碼。SWFObject 2.0 Dynamic Sc​​aling

<script type="text/javascript"> 
    var params = {}; 
    params.scale = "exactfit" 
    var flashVars = {}; 
    swfobject.embedSWF("UserInterfaceStagingCR.swf", "myContent", "1440", "900", "9", null, flashVars, params); 
</script> 

回答

1

See this post about resizing a SWF set to 100% width/height

但是,如果您想從noScale切換到exactFit(反之亦然),您可能需要編輯JavaScript中的param節點。

我從來沒有真正嘗試過(我不知道是否會工作),但在這裏就是我想要實驗:

function setScaleMode(mode){ 

    var paramNodes = document.getElementsByTagName("param"); 

    for(var i=0, len=paramNodes.length; i<len; i++){ 
     var node = paramNodes[i]; 
     if(node.name === "scale"){ 
      //switch to whatever scale mode you want to use. 
      node.value = mode; 
      //exit loop 
      return; 
     } 
    } 

} 

var params = { scale: "exactfit" }; 
var flashVars = {}; 

swfobject.embedSWF("UserInterfaceStagingCR.swf", "myContent", "1440", "900", "9", false, flashVars, params); 

(當然,這個代碼將需要進行修改如果你有一個頁面上的多個主權財富基金)

然後讓你的動作腳本通過ExternalInterface的調用JavaScript的:

ExternalInterface.call("setScaleMode", "noscale"); 
+0

這看起來不錯。謝謝您的幫助。 – 2012-04-03 20:54:43