JS+Flash 图片轮播
来源:广州中睿信息技术有限公司官网
发布时间:2012/10/21 23:25:16 编辑:admin 阅读 338
公司要求将导航与banner轮播放在一块,做一个Flash,一是浏览器支持效果好,二是资源消耗低,图片与导航内容要求在JS里面配置,以便开发。弄好之后,把banner轮播部分单独提取出来,做成一个小

公司要求将导航与banner轮播放在一块,做一个Flash,一是浏览器支持效果好,二是资源消耗低,图片与导航内容要求在JS里面配置,以便开发。弄好之后,把banner轮播部分单独提取出来,做成一个小插件,与大家共享。先看效果

效果共有13种,分别为,其中飞行过渡,挤压过度,划入过度都有多个方向,由dimension参数控制,需要的方向要求的可自行进行修改,编译:

effects = new Array();  effects.push( { type:Iris, direction:Transition.IN, duration:speed, easing:Strong.easeOut } );//方块扩展效果  effects.push( {type:Blinds, direction:Transition.IN, duration:speed, easing:None.easeNone, numStrips:20, dimension:0} );//遮帘(纵向)  effects.push( {type:Blinds, direction:Transition.IN, duration:speed, easing:None.easeNone, numStrips:20, dimension:1} );//遮帘(横向)  effects.push( {type:Fade, direction:Transition.IN, duration:speed, easing:None.easeNone});//淡入  effects.push( {type:Fade, direction:Transition.OUT, duration:speed, easing:None.easeNone} );//淡出  effects.push( {type:Fly, direction:Transition.IN, duration:speed, easing:Elastic.easeOut, startPoint:1} );//飞行过渡,9个不同方向  effects.push( {type:Iris, direction:Transition.IN, duration:speed, easing:Strong.easeOut, startPoint:5, shape:Iris.CIRCLE} );//光圈过渡  effects.push( {type:Photo, direction:Transition.IN, duration:speed, easing:None.easeNone} );//渐变曝光  effects.push( {type:PixelDissolve, direction:Transition.IN, duration:speed, easing:None.easeNone, xSections:50, ySections:50} );//像素溶解  effects.push( {type:Rotate, direction:Transition.IN, duration:speed, easing:Strong.easeInOut, ccw:false, degrees:360 } );//旋转过渡  effects.push( {type:Squeeze, direction:Transition.IN, duration:speed, easing:Elastic.easeOut, dimension:1});//挤压过渡,2个方向  effects.push( {type:Wipe, direction:Transition.IN, duration:speed, easing:None.easeNone, startPoint:1} );//划入过渡8个方向  effects.push( {type:Zoom, direction:Transition.IN, duration:speed, easing:Elastic.easeOut} );//弹性缩放   

 

使用方法:  

用法力求简单,将imageShow.js加入到网页中需要进行图片轮播的地方即可,JS内容为(可在附近里面下载)。

var pic_width=943; //图片宽度  var pic_height=354; //图片高度  var stop_time=4000; //图片停留时间(1000为1秒钟)  var switch_type=-1;//图片切换方式  var speed = 3;//图片切换速度,以秒计算  var imag=new Array();//图片  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++){   pics=pics+("|"+imag[i]);   imglinks = imglinks+("|"+imglink[i]);  }    pics=pics.substring(1);  imglinks = imglinks.substring(1);  document.write('<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cabversion=6,0,0,0" width="'+ pic_width +'" height="'+ swf_height +'">');  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(其它的没测试,应该没问题)

完整测试用例下载

联系我们CONTACT 扫一扫
愿景:成为最专业的软件研发服务领航者
中睿信息技术有限公司 广州•深圳 Tel:020-38931912 务实 Pragmatic
广州:广州市天河区翰景路1号金星大厦18层中睿信息 Fax:020-38931912 专业 Professional
深圳:深圳市福田区车公庙有色金属大厦509~510 Tel:0755-25855012 诚信 Integrity
所有权声明:PMI, PMP, Project Management Professional, PMI-ACP, PMI-PBA和PMBOK是项目管理协会(Project Management Institute, Inc.)的注册标志。
版权所有:广州中睿信息技术有限公司 粤ICP备13082838号-2