flex做图片切换(播放)
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" backgroundColor="white" width="300" height="200" creationComplete="getResult()"> <mx:Style> .vbox { backgroundColor: #000000; textAlign:center; borderStyle:solid; borderColor:#ffffff; } </mx:Style> <mx:Script> <![CDATA[ import mx.containers.VBox; import flash.utils.setInterval; import mx.containers.Canvas; import mx.controls.Label; import mx.controls.Button; import mx.controls.Text; import mx.controls.Alert; import mx.rpc.events.*; import mx.collections.*; import mx.controls.*; import flash.utils.*; import flash.events.TimerEvent; import flash.events.ContextMenuEvent; private var newsListXml:XML; private var newsList:XMLListCollection; private var PicUrl:String = "E:\\ad\"; private var newsArray:Array = new Array; //全局变量,用来装vbox集合 private var currNews:News; private var newsArrayLength:int; //发送请求去读取xml文件信息 public function getResult():void{ feed.url="http://127.0.0.1:8080/webroot/file/bigAds.xml"; //xml文件路径 feed.send(null); } //请求xml成功后处理函数 public function resultHandler(event:ResultEvent):void { canvasid.setStyle("backgroundImage",PicUrl+"5.jpg"); title.text="哈1"; newsListXml = XML(event.result); init(); autoPlay(); } public function titileStyle():void{ var glowFilter:GlowFilter=new GlowFilter(); glowFilter.color=0xFFFFFF; var sampleFilters:Array = title.filters; sampleFilters.push(glowFilter); title.filters = sampleFilters; } //错误时处理的函数 public function handleFault(event:FaultEvent):void{ Alert.show(event.fault.faultString, "Error"); } //动态创建标签 public function init():void{ newsList = new XMLListCollection(newsListXml.children().child(1).children()); var lb:Label; var vbox:VBox; for(var i:int=0;i<newsList.length;i++){ var newsObject:Object=newsList.getItemAt(i); lb = new Label(); var picId:String=newsObject.@pk; lb.id = "pic"+picId; //存id lb.text = String(i+1); var picName:String=newsObject.@pk+".jpg"; //存图片路径 lb.name = picName; //存图片名字 lb.setStyle("color","#ffffff"); lb.useHandCursor = true; lb.buttonMode = true; lb.mouseChildren = false; lb.height=15; lb.width=22; var title:String =newsObject.entry.(@key=="title"); vbox = new VBox(); vbox.id = ""+i; vbox.addChild(lb); vbox.styleName="vbox"; addIndexEvent(lb,vbox); //动态为tx标签元素添加事件 HboxIndexSet.addChild(vbox); var news:News=new News(); news.seq=i; news.id=newsObject.@pk; news.title=newsObject.entry.(@key=="title"); news.img=newsObject.@pk+".jpg"; news.indexBox=vbox; newsArray[i]=news; } titileStyle(); newsArrayLength=newsArray.length; currNews=newsArray[newsArrayLength-1]; setInterval(function():void{autoPlay();},3000); //as2.0中用setInterval ///var ttime:Timer = new Timer(2000,0); /// ttime.addEventListener(TimerEvent.TIMER,function():void{autoPlay();}); //as3.0中用time取代了setInterval ///ttime.start(); } //动态为标签添加事件 public function addIndexEvent(tagetObject:Object,box:VBox):void{ //参数一代表哪个标签对像,二是一个变量参数 tagetObject.addEventListener(MouseEvent.CLICK,function():void{clickIndex(box);}); } //处理事件函数 public function clickIndex(box:VBox):void{ toTop(newsArray[box.id]) } //自动切换(播放) public function autoPlay():void{ var currSeq:int=currNews.seq; var nextSeq:int=(currSeq+1)%newsArrayLength; var nextNews:News=newsArray[nextSeq]; toTop(nextNews); } //图片切换,背景色切换 public function toTop(nextNews:News):void{ currNews.indexBox.setStyle("backgroundColor","#000000"); nextNews.indexBox.setStyle("backgroundColor","red"); canvasid.setStyle("backgroundImage",PicUrl+nextNews.img); title.text=nextNews.title; currNews=nextNews; } //打开一个浏览器(暂没用) // public function showPic():void{ // navigateToURL(new URLRequest("http://www.baidu.com"),"_blank"); // } ]]> </mx:Script> <mx:HTTPService id="feed" resultFormat="e4x" result="resultHandler(event)" fault="handleFault(event);" useProxy="false" /> <mx:VBox width="300" height="200" verticalAlign="bottom" verticalGap="0" id="canvasid" horizontalCenter="0" verticalCenter="0" verticalScrollPolicy="off" horizontalScrollPolicy="off"> <mx:Label x="123" y="180" text="Label" height="26" color="#000000" fontSize="20" fontWeight="bold" id="title" /> <mx:HBox x="211" y="180" width="100%" backgroundColor="#000000" backgroundAlpha="0.50" horizontalAlign="right" id="HboxIndexSet" horizontalGap="1" horizontalScrollPolicy="off"/> </mx:VBox> </mx:Application>以下是图:1 楼 四输五金 2008-09-27 谢谢了,最近也在研究这个 2 楼 yanlong_530163.com 2008-10-09 四输五金 写道