html5 方形计时器,要做一个方形倒计时,请问该怎么实现,不知道该怎么做

本文介绍了一个用于游戏UI的倒计时组件CdSprite的实现细节,包括其基本属性设置、绘制圆弧进度以及定时更新等核心功能。

package huamao.layer.ui

{

import app.TheGame;

import laya.display.Sprite;

import laya.maths.Rectangle;

public class CdSprite extends Sprite

{

public static const START:int = -90;

public static const COLOR:String = "#000000";

private var r:Number = BarCell.WID / Math.SQRT2;

private var rect:Rectangle = new Rectangle(0,0,BarCell.WID,BarCell.WID);

private var pos:int = BarCell.WID*0.5;

private var endTime:int;

private var cdTime:int;

public var isCd:Boolean = false;

public function CdSprite()

{

super();

this.scrollRect = rect;

this.alpha = 0.85;

}

public function setSize(bian:int):void{

r = bian / Math.SQRT2;

rect = new Rectangle(0,0,bian,bian);

this.scrollRect = rect;

pos = bian * 0.5;

}

public function set360(value:int):void {

this.graphics.clear();

if(value == -1){

return;

}

this.graphics.drawPie(pos,pos,r,START+(360 - value), 270 , COLOR ,null,0);

}

private function ef():void {

if( TheGame.GetServerTime() > endTime ){

this.stop();

return;

}

var now:int = ( endTime - TheGame.GetServerTime() )/cdTime * 360;

this.set360(now);

}

public function play(time:int,startTime_:int = 0):void

{

this.cdTime = time;

var startTime:int = ( (startTime_ == 0) ?TheGame.GetServerTime() : startTime_ );

this.endTime = startTime + time;

Laya.timer.loop(1,this,ef);

isCd = true;

}

public function stop():void

{

this.set360(-1);

Laya.timer.clear(this,ef);

isCd = false;

}

}

}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值