gotoAndPlay / gotoAndStop не работает с цифровыми метками кадров - PullRequest
2 голосов
/ 17 августа 2011

По независящим от меня причинам в настоящее время я работаю над серией флэш-файлов, которые имеют цифровые метки кадров. Это вызывает проблему, поскольку при использовании gotoAndPlay / gotoAndStop для Flash строки выглядят так же, как и для целых чисел.

Скриншот:

screenshot

Например, gotoAndPlay('96') на самом деле не будет переходить во фрейм с меткой «96», вместо этого он будет переходить к кадру AndPlay № 96.

Сейчас кажется, что единственное решение состоит в том, чтобы вручную выяснить, на каком кадре опирается каждая из меток, поэтому вместо использования gotoAndPlay('96') я бы использовал gotoAndPlay(718). Очевидно, это было бы утомительно (есть МНОЖЕСТВО меток кадров), а также потребовало бы изменения номеров кадров, если какие-либо изменения требуют перемещения объектов.

Есть идеи? Есть ли способ заставить флэш-память получить hasAndPlay / Stop на числовой метке кадра, которую я пропустил?

1 Ответ

6 голосов
/ 17 августа 2011

Мне это кажется ошибкой Flash Player (или, по крайней мере, недостатком дизайна). Но вы должны иметь возможность использовать свойство currentLabels в MovieClip, которое даст вам массив FrameLabel объектов. Затем используйте это, чтобы создать собственное отображение между числовыми строками метки кадра и фактическими номерами кадра.

Вот пример кода того, о чем я говорю:

var label : FrameLabel;
var mapping : Object = {};

// Create a mapping between frame label string (regardless of semantics)
// and the frame number that it corresponds to.
for each (label in myMovieClip.currentLabels) {
  mapping[label.name] = label.frame;
}


/**
 * Your own version of gotoAndPlay for labels, which will look into your
 * recently created mapping and play the right frame (by number) for the
 * given frame label.
*/
function gotoAndPlayLabel(label : String) : void
{
  myMovieClip.gotoAndPlay( mapping[label] );
}

Затем вы использовали бы свою собственную функцию gotoAndPlayLabel() для перехода (и воспроизведения) кадра по его метке.

...