Adobe Animate CC, HTML5 Canvas - захватывать имена экземпляров в виде динамического текста? - PullRequest
0 голосов
/ 08 июня 2019

Простите, я не настоящий JS-программист и все еще разбираюсь во многих концепциях.

Предположим, у кого-то была вложенная группа похожих роликов ролика с 2-мя / 2-мя состояниями.внутри содержащего клипа, который имеет имя экземпляра «Карта».Каждый клип использует четырехзначный идентификационный номер, которому предшествует «s» в качестве имени экземпляра - например, «s6566».

Предположим, что затем нужно захватить эти соответствующие имена экземпляров для определения переменной, чтобы один маленький сценарий мог позволить каждому из этих фрагментов ролика отображать свой идентификатор в режиме ролловера / активного состояния (в данном случае «6566»), через несколько файлов.

В конечном итоге у меня есть тысячи этих маленьких клипов, разбросанных по нескольким дюжинам документов, и, кажется, должно быть довольно просто получить имя / идентификатор экземпляра каждого символа, убрать "s" с начала (там, потому что экземпляримена не могут начинаться с цифры) и применить указанный идентификатор в качестве динамического текста к ролику / активной рамке соответствующего символа.

Есть ли способ достижения этой цели?Хотелось бы, чтобы у меня был пример кода для включения здесь, но я не совсем уверен, с чего начать, кроме как таким образом изложить проблему.Еще не удалось найти какую-либо информацию о захвате имен экземпляров, и я не уверен, возможно ли это.Спасибо.

1 Ответ

0 голосов
/ 08 июня 2019

Дочерние фрагменты MovieClips хранятся в виде ссылок с использованием имени их экземпляра.Вы можете увидеть формат в экспортированном файле библиотеки JS.Обратите внимание, что Animate преобразует имена некоторых экземпляров, чтобы удалить неподдерживаемые символы или дубликаты.

Вот несколько непроверенных псевдокодов для начала работы.

// You can iterate a MovieClip and get the names
for (var name in someMovieClip) {
    // Ignore anything not starting with an s
    if (name.substr(0,1) != "s") { continue; }

    // remove the s
    var newName = name.substr(1);

    // The child can be accessed using bracket-access with its name
    var child = someMovieClip[name];

    // The child should have text instances if it is set up how you described
    // Set the text to the newName
    child.textInstance.text = newName
}

Не забудьте обновить этаппосле внесения изменений.Если вы уже настроили Ticker для этого, он должен немедленно обновиться.

Надеюсь, это поможет.Если у вас есть дополнительные вопросы, дайте мне знать.

...