工具類:給文本添加滾動(dòng)

語(yǔ)言:LayaBox - AS3
工具類作用:自動(dòng)給文本添加滾動(dòng),當(dāng)文本顯示不下時(shí),添加這個(gè)腳本,就可以滾動(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:"滾動(dòng)方向,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;//自動(dòng)滾動(dòng)一次的標(biāo)志
        private var maxScrollX:Number = 0;//水平最大滾動(dòng)距離
        private var maxScrollY:Number = 0;//垂直最大滾動(dòng)距離
        private var waitTotalTime:Number = 1000;//打開(kāi)界面后等待多久之后自動(dòng)滾動(dòng)
        private var waitcountTime:Number = 0;//統(tǒng)計(jì)打開(kāi)界面之后經(jīng)過(guò)的時(shí)間

        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);
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容