<?xml version="1.0" encoding="utf-8"?> <mx:Panel xmlns:mx="http://www.adobe.com/2006/mxml" creationComplete="complete()" fontSize="13" horizontalCenter="0" verticalCenter="0" borderThicknessLeft="2" borderThicknessBottom="2" borderThicknessRight="2" borderThicknessTop="2"> <mx:Script> <![CDATA[ import mx.controls.Alert; private var durationtime:Number; public var durationTime:Number=5000; public var mode:String="vb2t";//vb2t:下往上滚动;vt2b:上往下滚动;hl2r:左往右滚动;hr2l:右往左滚动 public var marqueeText:String="flexMarquee text here<br>flexMarquee text here<br>flexMarquee text here<br>flexMarquee text here<br>flexMarquee text here<br>flexMarquee text here<br>flexMarquee text here<br>flexMarquee text here<br>flexMarquee text here<br>flexMarquee text here<br>flexMarquee text here<br>flexMarquee text here<br>flexMarquee text here<br>flexMarquee text here<br>flexMarquee text here<br>flexMarquee text here"; private function complete():void { if(this.title==""){ this.setStyle("headerHeight",0); //重新定义cs的高度 cs.height+=28; } //假如没有标题,将PANEL的headerHeight设为0 if(mode=="hl2r" || mode=="hr2l"){ tt.height=25; this.height=(this.title==""?28:60); cs.height=23; tt.x=3; tt.y=1; var tempA:Array; if(marqueeText.indexOf("<br>")>=0){ tempA=marqueeText.split("<br>"); marqueeText=tempA.join(" "); } if(marqueeText.indexOf("<br>")>=0){ tempA=marqueeText.split("<br>"); marqueeText=tempA.join(" "); } }else{ tt.width=cs.width-6; tt.x=3; tt.y=1; } tt.htmlText=marqueeText; tt.validateNow(); if(mode=="hl2r" || mode=="hr2l"){ durationtime=(tt.textWidth<=250?durationTime:Math.round(tt.textWidth/250*durationTime)); }else{ durationtime=(tt.textHeight<=250?durationTime:Math.round(tt.textHeight/250*durationTime)); } //设置文字。若为横向移动,将换行符改为适当的空格 //根据不同模式调整区域大小及文字滚动的方向 switch(mode){ case "hl2r": move_up.xFrom=0-tt.textWidth+6; move_up.xTo=cs.width-6; break; case "hr2l": move_up.xFrom=cs.width-6; move_up.xTo=0-tt.textWidth+6; break; case "vt2b": move_up.yFrom=0-tt.textHeight+6; move_up.yTo=cs.height-6; break; default: //Alert.show(tt.height+"---"+tt.textHeight); move_up.yFrom=cs.height - 6; move_up.yTo=0 - tt.textHeight + 6; } move_up.repeatCount=0; //loop move_up.repeatDelay=0; //loop time move_up.duration=durationtime; //the time of scroll once move_up.play(); } private function move_pause():void { move_up.pause(); //pause } private function move_resume():void { move_up.resume(); //start from the pause position } ]]> </mx:Script> <mx:Move id="move_up" target="{tt}"/> <mx:Canvas id="cs" width="100%" height="100%" left="0" top="0" verticalScrollPolicy="off" horizontalScrollPolicy="off" mouSEOver="move_pause()" mouSEOut="move_resume()"> <mx:Text id="tt" left="3" top="1" horizontalCenter="0" verticalCenter="0"> </mx:Text> </mx:Canvas> </mx:Panel>