返回列表 回复 发帖

Flex实现图片展播+渐出特效

本帖最后由 somboy 于 2009-11-2 14:51 编辑

实现的原理是通过XML配置图片数据,Flex读取XML文件获取到图片数据,然后将当前显示的图片设置为XML中配置的第一条数据的图片,通过四个按扭来控制图片播放的索引,同时为图片也加了事件处理函数,点击图片就切换到下一张图片。下面是最终效果图。
ImageShow.jpg
2009-11-2 14:51

废话少说,直接上代码。
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()">
  3.     <mx:Script>
  4.         <![CDATA[
  5.             import mx.collections.ArrayCollection;
  6.             import mx.core.UIComponent;
  7.             [Bindable]
  8.             private var picArray:ArrayCollection;
  9.             [Bindable]
  10.             private var index:Number = 0;
  11.             
  12.             private function init():void
  13.             {
  14.                 var loader:URLLoader = new URLLoader();
  15.                 loader.addEventListener(Event.COMPLETE,onComplete);
  16.                 loader.load(new URLRequest("data/pic.xml"));
  17.             }
  18.             
  19.             private function onComplete(event:Event):void
  20.             {
  21.                 var xml:XML = new XML(event.target.data);
  22.                
  23.                 picArray = new ArrayCollection();
  24.                 for(var i:Number = 0;i <xml.children().length();i++)
  25.                 {
  26.                     var o:Object = new Object();
  27.                     o.ImageUrl = xml.pic[i].imageUrl;
  28.                     picArray.addItem(o);
  29.                 }
  30.             }
  31.             
  32.             private function onClickHandler(id:String):void
  33.             {
  34.                 switch(id)
  35.                 {
  36.                     case "btn1":
  37.                         this.index = 0;
  38.                         break;
  39.                     case "btn2":
  40.                         if(this.index != 0)
  41.                         {
  42.                             this.index -= 1;
  43.                         }
  44.                         break;
  45.                     case "btn3":
  46.                         if(this.index != picArray.length-1)
  47.                         {
  48.                             this.index += 1;
  49.                         }
  50.                         break;
  51.                     case "btn4":
  52.                         this.index = picArray.length - 1;
  53.                         break;
  54.                 }
  55.             }
  56.             
  57.             private function onImageClick(event:MouseEvent):void
  58.             {
  59.                 if(this.index == picArray.length -1)
  60.                 {
  61.                     this.index = 0;
  62.                 }
  63.                 else
  64.                 {
  65.                     this.index++;
  66.                 }
  67.             }
  68.         ]]>
  69.     </mx:Script>
  70.     <mx:Panel x="73" y="78" width="701" height="536" layout="absolute" fontSize="12">
  71.         <mx:Image x="0" y="0" width="680" height="455" id="imageShow" completeEffect="{fadeIn}"
  72.             source="{picArray.getItemAt(index).ImageUrl}" click="onImageClick(event)"/>
  73.         <mx:Button x="154" y="463" label="第一张" id="btn1" click="onClickHandler(btn1.id)"/>
  74.         <mx:Button x="227" y="462" label="上一张" id="btn2" click="onClickHandler(btn2.id)"/>
  75.         <mx:Button x="300" y="462" label="下一张" id="btn3" click="onClickHandler(btn3.id)"/>
  76.         <mx:Button x="373" y="462" label="最后一张" id="btn4" click="onClickHandler(btn4.id)"/>
  77.         <mx:Label x="607" y="466" width="73" id="indexCount" color="#FF0030" fontWeight="bold"
  78.             text="{(index+1) + '/' + picArray.length}"/>
  79.     </mx:Panel>
  80.     <mx:Fade id="fadeIn" duration="2000" alphaFrom="0.18" alphaTo="1.0"/>
  81. </mx:Application>
复制代码
最大愿望:农妇,山泉,有点田.
Baby my love,you are my super star!--------
pic.xml的配置我忘了把结构放出来,配置很简单
本帖隐藏的内容需要回复才可以浏览
最大愿望:农妇,山泉,有点田.
Baby my love,you are my super star!--------
本帖最后由 somboy 于 2009-11-25 17:34 编辑

要实现自动播放,添加一个事件处理就行了。
本帖隐藏的内容需要积分高于 10 才可浏览
最大愿望:农妇,山泉,有点田.
Baby my love,you are my super star!--------
顶..........
谢谢,支持
study
study
study
谢谢大家的支持,稍后有时间我将放出更多的Flex实例
最大愿望:农妇,山泉,有点田.
Baby my love,you are my super star!--------
好!学习,支持!
好学习一下
pic.xml的配置,把结构放出来 啊 ,我日。。。。
顶,学习了
谢谢~~~学习了
谢谢,学习了
谢谢,学习了
谢谢,学习了
返回列表