2010-06-24 67 views
0

我使用的是旧版本SWFObject.js的其中嵌入了一个SWF到HTML这样的遗留代码:如何迁移SWFObject调用代码?

var so = new SWFObject("main.swf", "main", "100%", "615", "9.0.115", "#000000"); 
so.addVariable("deeplink", deeplink); 
so.addVariable("cid", cid); 
so.addParam("scaleMode", "noscale"); 
so.addParam("allowScriptAccess", "always"); 
so.addParam("allowFullScreen", "true"); 
so.write("flashcontent"); 

我应该如何重写最新SWFObject.js?我已经尝试过,但失败了,我想首先排除语法不匹配:

var mainSwfProperties = { 
    flashVars : { 
     cid : cid, 
     deeplink : deeplink 
    }, 
    params : { 
     allowFullScreen : "true", 
     allowScriptAccess : "true", 
     scaleMode : "noscale", 
     wmode : "window" 
    }, 
    attributes : {} 
}; 
swfobject.embedSWF("main.swf", "flashcontent", "100%", 615, "9.0.115", null, 
    mainSwfProperties.flashVars, 
    mainSwfProperties.params, 
    mainSwfProperties.attributes 
); 

回答

1

那么,我一定会认为这会起作用。基本上,flashvars,params和属性需要是js对象。我通常把它们作为单独的对象,而不是像你设置的那样有一个单独的对象。

<script type="text/javascript"> 
    var flashvars = {cid:cid, deeplink:deeplink}; 
    var params = {allowFullScreen:true, allowScriptAccess:true, scaleMode:"noscale", wmode:"window"}; 
    var attributes = {} 
    swfobject.embedSWF("main.swf", "flashcontent", "100%", "615", "9.0.115", null, flashvars, params, attributes); 
</script> 
0

同样来自swfobject文档,它期望宽度和高度是字符串,你有高度作为int在那里。

+0

SWFObject 2.3 beta修复了此https://github.com/swfobject/swfobject – pipwerks 2013-01-04 17:59:09