自己写的一个字幕滚动类(方便调用)

package {
import flash.display.DisplayObjectContainer;
import flash.display.Shape;
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.events.TimerEvent;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import flash.text.TextFormat;
import flash.utils.Timer;
/****
* @by zou
* 2008-12-23
* ******/
public class TestProject extends Sprite
{
   //滚动的文本
   private var _textField : TextField = new TextField();
   //文本格式的控制
   private var _textFormat : TextFormat = new TextFormat();
   //定时器初始化
   private var _timer : Timer;
   //储存文本的容器
   private var _sprite : Sprite = new Sprite();
   //遮罩
   private var _shape :Shape = new Shape();
   public function TestProject(time : uint=40)
   {
//    var rollText : RollText = new RollText();
//    addChild(rollText);
   var _sprite1 : Sprite = new Sprite();
  

    init(time);
    mangerListener();
   
    displayText(_sprite1,100,100,"梦境世界欢迎您的到来","H",100,100);
   
    addChild(_sprite1);
   
   }
   //代码集中控制
   private function init(time : uint) : void{
    _timer = new Timer(time);
    _textField.mask=_shape ;
   }
   //监听集中管理
   private function mangerListener():void
   {
    _textField.addEventListener(MouseEvent.MOUSE_OVER,_textField_OVER);
    _textField.addEventListener(MouseEvent.MOUSE_OUT,_textField_OUT);
   }
   //鼠标滚动事件
   private function _textField_OVER(event : MouseEvent) : void{
    _timer.stop();
   }
   //鼠标滚过事件
   private function _textField_OUT(event : MouseEvent) : void{
    _timer.start();
   }
   //父类容器,滚动类型
   public function displayText(container : DisplayObjectContainer,
          width :uint,height : uint,text : String,type : String="H",
          x:Number=0,y:Number=0) : void{
     //文本的格式控制     
     _textField.defaultTextFormat=_textFormat;
     //将_sprite添加到父容器中
     container.addChild(_sprite);
     _sprite.x=x;
     _sprite.y=y;
     _sprite.addChild(_textField);
     _sprite.addChild(_shape);
     _shape.graphics.beginFill(0xFFCC00);
     _shape.graphics.drawRect(0,0,width,height);
     _shape.graphics.endFill();
     _textField.text=text;
     if(type=="V"){
     VRoll();
     } else {
      HRoll();
     }
    }
    //横向滚动
    private function HRoll() : void{
    _textField.x=_shape.width;
    _textField.autoSize=TextFieldAutoSize.LEFT;
    _textField.y=0;
    _textField.multiline = false;
    _textField.wordWrap = false;
    _timer.addEventListener(TimerEvent.TIMER,Htimer_TIMER);
    _timer.start();
    }
    private function Htimer_TIMER(event :TimerEvent) : void{
    _textField.x-=1 ;
    if(_textField.x<=-_textField.width) {
       _textField.x=_shape.width;
    }
    }
    //垂直滚动
    private function VRoll() : void {
    _textField.x=0;
    _textField.y=_shape.height;
    _textField.multiline = true;
    _textField.wordWrap = true;
    _textField.width=_sprite.width;
    _timer.addEventListener(TimerEvent.TIMER,Vtimer_TIMER);
    _timer.start();
    }
    private function Vtimer_TIMER(event : TimerEvent) : void{
    _textField.y-=1;
    if(_textField.y<-_textField.height){
    _textField.y=_shape.height;
    }
    }
    //文本控制,可选
    public function setTextFormat(color : uint=0x000000,bold : Boolean = false,size : uint=12,
             font : String="Times New Roman") : void{
       _textFormat.color=color;
       _textFormat.bold=bold;
       _textFormat.size=size;
       _textFormat.font=font;       
    }
}
}
posted @ 2010-02-12 10:54  与时俱进  阅读(395)  评论(0编辑  收藏  举报
友情链接:同里老宅院民居客栈