Если вам удобно писать собственный JSFL-сценарий для этой сложной задачи, я бы порекомендовал вам получить некоторый опыт навигации по дереву Flash DOM и взять копию "Extennding Flash MX 2004" от FriendsofEd или, по крайней мере, посмотретьв своем предварительном просмотре JSFL PDF: http://www.friendsofed.com/books/1590593049/3049_Ref.pdf.Хотя это устарело, концепции, свойства и методы не претерпели существенных изменений (если вообще), за исключением некоторых более новых функций, очевидно, текстовые поля TLF являются одним из них!
Более полным и обновленнымКак правило, эту версию можно найти в справочной системе Adobe Livedocs / Help:
Для ваших конкретных потребностей вам потребуется отсканировать:
- Основная временная шкала;
- Экземпляры главной временной шкалы, которые имеют временные линии (MovieClip, Кнопки, Графика);
- Временные шкалы библиотечных символов;
- Временные шкалы детских библиотечных символов (хотя это может быть избыточно, поскольку вы уже делаете это таким же образом, как и предыдущиеstep;
Чтобы сканировать временную шкалу текущего документа на наличие элементов, сначала рекомендуется сохранить ссылку на текущую временную шкалу, например, так:
var doc = fl.getDocumentDOM();
var tl = doc.getTimeline();
ПРИМЕЧАНИЕ.что это схватит рефЭффект текущей отображаемой временной шкалы (будь то символ в режиме «Редактировать на месте», или другая сцена и т. д.). Чтобы убедиться, что он выбирает вашу «Основную временную шкалу» каждый раз, когда вы запускаете сценарий, я полагаю, что следующее захватитit:
var tl = doc.timelines[0]; //Grabs the Main Timeline
ПРИМЕЧАНИЕ. Пожалуйста, исправьте вышесказанное, если я ошибаюсь!
Не совсем точно знаю, есть ли в вашем проекте TextFields в разных ключевых кадрах или они находятся в одном кадревременные шкалы, имеет смысл сканировать каждый кадр вашей временной шкалы, чтобы проверить наличие каких-либо экземпляров TextField.
Для этого важно отметить, что экземпляры или в терминологии JSFL "Элементы"не может быть получен непосредственно из объекта Timeline.Вы должны копать немного глубже, чтобы добраться туда!
По сути, вы должны пройти этот путь:
- Текущий
Timeline
; - Это
Timeline
's слоев ; - Каждый
Layer
кадров кадров ; - Каждый
Frame
объектов элементов , затем; - Проверьте, является ли это
TextField
экземпляром или нет;
Как только вы найдете эти TextFields, вам нужно будет "преобразовать" его в текстовое поле TLF.Преобразование, то есть ... создание нового текстового поля TLF, передача ему всех повторно используемых свойств классического объекта TextField, размещение текстового поля TLF в том же индексе (z-глубина), где был классический TextField, и затем его отбрасывание.При желании вы можете установить все необходимые свойства Embedded и / или TLF, необходимые для поддержки арабского шрифта.
Не вдаваясь в мелкие детали того, как выполнить этот процесс преобразования, вы можете увидеть, что просто сканируете одну временную шкалу в одиночкуэто сложная миссия.Не невозможно, но просто несколько шагов.
Если вы тщательно создадите свои собственные функции JSFL, чтобы инкапсулировать каждый необходимый шаг, чтобы его можно было повторно использовать в других необходимых проверках (другие временные шкалы, символы библиотеки и т. Д.), Вы будетезначительно снизьте сложность этой задачи!
Надеюсь, что это поможет вам (даже если это не немедленное противоядие, как в "Вот ответ, возьми это ..."!)