//遮罩实现的进度条,cocos自带的进度条是九宫格缩放的

const {ccclass, property, menu} = cc._decorator;

@ccclass
@menu("UI/MaskProgress")
export default class MaskProgress extends cc.Component {

    @property(cc.Node)
    iconFolowed: cc.Node = null;

    @property(cc.Label)
    labelProgress: cc.Label = null;

    public get progress()
    {
        return this._progress;
    }

    public set progress(value: number)
    {
        if (this.flag)
        {
            if (value < 1) this.flag = false;
            return;
        }
        if (value > 1) { value = 1; this.flag = true; }
        this._progress = value;
        if (this.maskNode)
        {
            this.maskNode.width = Math.floor(value * this.node.width);
            if (this.iconFolowed) this.iconFolowed.x = this.maskNode.x + this.maskNode.width;
            if (this.labelProgress) this.labelProgress.string = Math.floor(value * 100) + "%";
        }
    }

    private _progress: number;
    private maskNode: cc.Node;
    private flag: boolean = false;

    onLoad()
    {
        this.maskNode = this.node.children[0];
        this.progress = 0;
        if (this.labelProgress) this.labelProgress.string = "0%";
    }
}