flash网站要实现大小控制,往往需要做一个flash跟着窗口尺寸自动放大缩小的功能。
我采用的方法是:
放一个容器div承载,里面放着100%宽高的flash
js监听网页窗口大小,然后重设容器div的大小
flash里监听舞台变化,相应视图改变位置等
用JQuery在监听窗口大小的环节出现状况。
代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
$(document).ready(function(){ WSWFobj("100%", "100%", 'swf/SiteLoader.swf', ['allowScriptAccess'], ['always'], 'flashContainer', 'mainFlash'); confSize(); }); $(window).resize(function(){ alert('resize'); confSize(); }); function confSize(){ var w = $(window).width(); var h = $(window).height(); if (w < minW) w = minW; if (h < minH) h = minH; $("#wrap").width(w); $("#wrap").height(h); } var minW = 1004; var minH = 650; function setMinSize(w, h){ minW = w; minH = h; } |
浏览器测试,发现IE会不断调用confSize()
原因是:
IE fires the window resize event multiple times (instead of once) per actual resize.
实际上每一次resize,IE总会发出多次window.resize事件,而不是一次。
现成解决方案:此JQuery插件解决此问题
http://plugins.jquery.com/project/wresize
This plugin tries to fix it by introducing a specific method, wresize, which you can use like this:
$( selector ).wresize( your_handler )
本文对您有用吗? 何不留下评论继续交流?