<?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>
原文链接:https://www.f2er.com/vb/260876.html