其实这个问题就是如何将Flash置于Div层下
在页面中添加amstock的特性很简单,加入下面的代码:
<script type="text/javascript" src="amstock/swfobject.js"></script> <div id="flashcontent"><strong>You need to upgrade your Flash Player</strong></div> <script type="text/javascript"> // <![CDATA[ var so = new SWFObject("amstock/amstock.swf", "amstock", "800", "500", "8", "#FFFFFF"); so.addVariable("path", "amstock/"); so.addVariable("settings_file", encodeURIComponent("amstock/amstock_settings.xml")); so.addVariable("preloader_color", "#999999"); so.write("flashcontent"); // ]]> </script>
可以上amChart官网 下载需要的包,方法例子也比较详细。
遇见问题先Google了一下“amStock和amChart覆盖Div层”,没有这方面的问题。那么明显amChart提供了解决的方式!上官网看英文资料自己找。
不上官网也可以解决这个问题,从上面加载amstock的代码,不难发现其特性:通过JavaScript把Flash加载到Div中;查
amstock/swfobject.js
很容易发现SWFObject对象上有一个addParam方法:实现向flash的parameters里加入<param name="wmode" value="transparent">:
addParam:function(_11,_12){ this.params[_11]=_12; },
_11:相当于生成的<param name="",value="">中的name
_12:相当于生成的<param name="",value="">中的value
在JavaScript中添加:(我只在IE中测试通过,没有做FF的测试)
<script type="text/javascript"> // <![CDATA[ var so = new SWFObject("amstock/amstock.swf", "amstock", "800", "500", "8", "#FFFFFF"); so.addVariable("path", "amstock/"); so.addVariable("settings_file", encodeURIComponent("amstock/amstock_settings.xml")); so.addVariable("preloader_color", "#999999"); /*flash 覆盖div层解决 */ so.addParam("wmode","transparent"); so.write("flashcontent"); // ]]> </script>
体验了一把觉得问题的过程!