用法力求简单,将imageShow.js加入到网页中需要进行图片轮播的地方即可,JS内容为(可在附近里面下载)。
var imglink = new Array(); |
imag[1]= "E:\\FlashEx\\imageSwitch\\imageSwitch\\src\\images\\6.jpg" ; |
imag[2]= "E:\\FlashEx\\imageSwitch\\imageSwitch\\src\\images\\7.jpg" ; |
imag[3]= "E:\\FlashEx\\imageSwitch\\imageSwitch\\src\\images\\3.jpg" ; |
imag[4]= "E:\\FlashEx\\imageSwitch\\imageSwitch\\src\\images\\4.jpg" ; |
imag[5]= "E:\\FlashEx\\imageSwitch\\imageSwitch\\src\\images\\5.jpg" ; |
imglink[1]= "page/index.html" ; |
imglink[2]= "page/news.html" ; |
imglink[3]= "page/ppzs.html" ; |
imglink[4]= "page/server.html" ; |
imglink[5]= "page/shiping.html" ; |
var swf_height=pic_height; |
var pics= "" , texts= "" ,imglinks= "" ; |
for ( var i=1; i<imag.length; i++){ |
imglinks = imglinks+( "|" +imglink[i]); |
imglinks = imglinks.substring(1); |
document.write( '<param name="movie" value="imageShow.swf">' ); |
document.write( '<param name="quality" value="high"><param name="wmode" value="opaque">' ); |
document.write( '<param name="FlashVars" value="pics=' +pics+ '&pic_width=' +pic_width+ '&pic_height=' +pic_height+ ' &imglinks=' +imglinks+ ' &speed=' +speed+ ' &switch_type=' +switch_type+ '&stop_time=' +stop_time+ '">' ); |
document.write( '<embed wmode="transparent" src="imageShow.swf" FlashVars="pics=' +pics+ '&pic_width=' +pic_width+ '&pic_height=' +pic_height+" &imglinks= "+imglinks+' &speed='+speed+' &switch_type='+switch_type+'&stop_time='+stop_time+'" quality= "high" width= "'+ pic_width +'" height= "'+ swf_height +'" allowScriptAccess= "sameDomain" type= "application/x-shockwave-flash" pluginspage= "http://www.macromedia.com/go/getflashplayer" />'); |
document.write( '</object>' ); |
如上所示,一共有7个参数可供设置
var pic_width=943; //图片宽度
var pic_height=354; //图片高度
var stop_time=4000; //图片停留时间(1000为1秒钟)
var switch_type=-1;//图片切换方式,-1代表随机,从0至12
var speed = 3;//图片切换速度,以秒计算
var imag=new Array();//图片
var imglink = new Array();//图片链接
程序原理:
图片的切换过程主要是借助了AS3自带的TransitionManager图片切换类来完成的,要注意的问题是如何将要展示的图片深度调到最高。我是利用下面的方法进行深度排列的
private function resetDepth(depth: Number ): void { |
imageContainer.swapChildrenAt(imageNum - 2 , imageNum - 1 ); |
imageContainer.swapChildrenAt(imageContainer.getChildIndex(images[depth]), imageNum- 1 ); |
先将最后两个元素交换,以达到播放下一张图片时,背景显示的是前一张已经播放完的图片。
然后将当前元素与最后一个元素交换,将达到显示出当前元素的目的。
浏览器支持:
IE6+,Firefox,opera,safari(其它的没测试,应该没问题)