Adobe Edge Animate — как получить текущую метку?

Как в Adobe Edge Animate получить имя метки, соответствующее заданному времени? Я видел, что могу получить текущее время как целое число, используя

sym.getPosition()

но если в этой позиции есть метка, как мне получить метку в виде строки?


person user2348269    schedule 03.05.2013    source источник


Ответы (2)


function getLabel() {

 var stage = sym.getComposition().getStage();
 var labels = stage.timelines['Default Timeline'].labels;

 var currentLabel;
 var currentPosition = stage.getPosition();

 $.each( labels, function( label, position ){
  if (position <= currentPosition) currentLabel = label;
 });

 return currentLabel;

}

console.log( getLabel() );

это вернет метку в (или следующую перед) текущую позицию.

person tomas polach    schedule 01.10.2013
comment
+1 добавил этот ответ, но я думаю, что лучшим решением может быть переработка вопроса и сравнение значения stage.getLabelPosition([имя метки]) с stage.getCurrentPosition() (в данном случае). Не обязательно знать положение метки в логических блоках, вы, вероятно, просто захотите узнать, имеет ли текущая позиция конкретную метку. - person DeeperID; 06.03.2014

Для тех из нас, кто ищет решение Adobe Animate 2019 (как и я), оно похоже, но немного отличается:

function getLabel(_this) {

     var currentLabel;
     var currentPosition = _this.currentFrame;

     _this.labels.forEach(function( label, index ){
        if (label.position <= currentPosition) currentLabel = label.label;
     });

     return currentLabel;

}

Ваше положение на временной шкале легче получить, а объект меток организован по-другому. (Также jQuery недоступен.)

person SFlagg    schedule 04.07.2019