您的位置:首页 > 其它

flex做图片切换(播放)

2009-05-25 10:35 363 查看
flex做图片切换(播放)

Java代码

<?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>

http://www.javaeye.com/upload/attachment/35803/afcc61a9-46ec-3980-b4ac-cddbca1815e6.bmp
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: