I think I have find one way. Using the tl.time() to compare the label's time to judge reach which label.
btn.addEventListener('click', function(){
var tl=new TimelineMax();
var obj=$("#entrance");
for(var i=0;i<4;i++){
var label="mylabel_"+i;
tl.addLabel(label);
if(i%2==1){
label="mylabel_"+i;
tl.to(obj,5,{x:100+i*100, onUpdate:
function(){
var panel=document.getElementById("test");
var t=tl.time().toFixed(2);
for (var i = 0; i <labels.length; i++) {
if(t>labels[i].time&&t<labels[i+1].time){
panel.innerHTML=labels[i].name;
break;
}
};
}});
}else{
tl.to(obj,5,{y:100+i*100, onUpdate:
function(){
var panel=document.getElementById("test");
var t=tl.time().toFixed(2);
for (var i = 0; i <labels.length; i++) {
if(t>labels[i].time&&t<labels[i+1].time){
panel.innerHTML=labels[i].name;
break;
}
};
}});
}
}
tl.addLabel("mylabel_final");
var labels = tl.getLabelsArray();
for (var i = 0; i < labels.length; i++) {
console.log("label name: " + labels[i].name + ", time: " + labels[i].time);
};
});
But i'm not sure when using timescale() to change the play speed ,the tl.time() could compare labels'time well.