語言:LayaBox - AS3
工具類作用:自動給文本添加滾動,當(dāng)文本顯示不下時传轰,添加這個腳本,就可以滾動看到剩下的內(nèi)容了
工具類代碼:
package UIEngine {
import laya.components.Script;
import laya.events.Event;
import laya.display.Text;
public class ScrollText extends Script {
/** @prop {name:scrollType, tips:"滾動方向,1水平2垂直", type:Int, default:1}*/
public var scrollType: int = 1;
private var prevX:Number = 0;//上一次的鼠標(biāo)x坐標(biāo)
private var prevY:Number = 0;//上一次的鼠標(biāo)y坐標(biāo)
private var isAutoMove:Boolean = false;//自動滾動一次的標(biāo)志
private var maxScrollX:Number = 0;//水平最大滾動距離
private var maxScrollY:Number = 0;//垂直最大滾動距離
private var waitTotalTime:Number = 1000;//打開界面后等待多久之后自動滾動
private var waitcountTime:Number = 0;//統(tǒng)計打開界面之后經(jīng)過的時間
private var _ownText:*;
override public function onEnable():void {
_ownText = this.owner;
_ownText.overflow = Text.SCROLL;
_ownText.on(Event.MOUSE_DOWN,this,startScrollText)
maxScrollX = _ownText.maxScrollX;
maxScrollY = _ownText.maxScrollY;
waitcountTime = 0;
isAutoMove = true;
}
public function startScrollText(e:Event):void
{
prevX = _ownText.mouseX;
prevY = _ownText.mouseY;
Laya.stage.on(Event.MOUSE_UP,this,finishScrollText)
Laya.stage.on(Event.MOUSE_MOVE,this,scrollText)
}
public function finishScrollText(e:Event):void
{
Laya.stage.off(Event.MOUSE_UP,this,finishScrollText)
Laya.stage.off(Event.MOUSE_MOVE,this,scrollText)
}
public function scrollText(e:Event):void
{
var nowX:Number = _ownText.mouseX;
var nowY:Number = _ownText.mouseY;
if(scrollType == 1){
_ownText.scrollX += prevX - nowX;
}else if(scrollType == 2){
_ownText.scrollY += prevY - nowY;
}
prevX = nowX;
prevY = nowY;
}
override public function onDisable():void {
}
override public function onLateUpdate():void{
if(isAutoMove){
if(waitcountTime<waitTotalTime){
waitcountTime += Laya.timer.delta;
return ;
}
if(scrollType == 1){
if(_ownText.scrollX<maxScrollX){
_ownText.scrollX += 0.5;
}else{
_ownText.scrollX = 0;
isAutoMove = false;
}
}else{
if(_ownText.scrollY<maxScrollY){
_ownText.scrollY += 0.5;
}else{
_ownText.scrollY = 0;
isAutoMove = false;
}
}
}
}
}
}
調(diào)用工具類:
private var _memberName:Label;
···
_memberName.addComponent(ScrollText);