JSFL - Flash CS4: замена шрифта текстовых полей встроенным шрифтом

Я пробовал кучу сценариев JSFL для изменения шрифтов текстовых полей библиотеки fla. Я использовал эти сценарии для изменения шрифтов текстовых полей для встроенного шрифта, который существует в библиотеке. Все скрипты нормально работают во Flash CS3, но всегда терпят неудачу в Flash CS4.

Приведем пример: замена шрифта «Arial», используемого во всех текстовых полях в fla-сцене, на встроенный шрифт (символ) «myEmbeddedArial *». Инструкция по замене шрифта jsfl следующая:

textElement.setTextAttr("face", "myEmbeddedArial*");

Я могу подробно рассказать об этой проблеме, но разве кто-то уже заметил ее и может знать о ее первопричине?

Спасибо

PS: обратите внимание, что функция «Найти / заменить шрифт» во Flash CS4 IDE работает правильно, только если текстовые поля не содержат пустых строк и, только если символ, включающий это текстовое поле, находится в сцене и только если вы ищите в «Текущем документе» (а не в «Текущей сцене»).


person khelkun    schedule 01.12.2010    source источник
comment
Я хотел бы знать, найдете ли вы решение этой проблемы. Кроме того, я бы хотел увидеть ваш скрипт, если возможно, так как скоро мне может понадобиться подобный хак.   -  person Mikko Tapionlinna    schedule 09.12.2010
comment
См. Сценарий, отправленный Робом: blog.samueltoth.com/?p=142 Он анализирует все фрагменты роликов библиотеки и добавьте желаемый диапазон встроенных глифов ко всем текстовым полям в этих клипах. К сожалению, textElement.setTextAttr (face, myEmbeddedArial *) может серьезно выйти из строя в CS4, если вы попытаетесь установить встроенный символ шрифта (зависит от различных проблем преобразования файлов CS3 в CS4). И, что еще более прискорбно, setTextAttr не вернет никакого значения, чтобы вы знали, удалось это или нет и почему. Пожалуйста, ответьте на письмо, которое я отправил вам из Gmail, если вам нужна дополнительная информация об этом.   -  person khelkun    schedule 01.01.2011


Ответы (2)


Я не уверен, работает ли это для вас, но возможно: http://blog.samueltoth.com/?p=142

Удачи, Роб

person robertp    schedule 31.12.2010

Думаю, я нашел успешный обходной путь. Таким образом, единственный способ правильно сделать это в CS4 IDE - использовать функцию поиска / замены, но содержимое текстовых полей не должно быть пустым.

  1. Используйте свой jsfl-скрипт, чтобы заполнить все пустые текстовые поля вашей библиотеки символов строкой маркера, например '####'.

  2. Убедитесь, что все символы встроенного шрифта, используемые в ваших текстовых полях, находятся в вашей библиотеке fla. Поскольку инструмент поиска / замены не будет анализировать текстовые поля, в которых используются некоторые символы встроенного шрифта, которых нет в библиотеке. В самом деле, некоторые символы встроенного шрифта могли быть удалены и / или сопоставлены со шрифтом по умолчанию (вручную или во время преобразования файла из CS3 в CS4). Особенно позаботьтесь о чувствительности к регистру в именах символов встроенного шрифта.

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

  4. Создайте новые символы встроенного шрифта, которые вы хотите использовать для замены старых символов встроенного шрифта.

  5. Теперь вы сможете правильно использовать функцию поиска / замены CS4 даже со встроенными символами шрифта. Открыть окно поиска / замены. Выберите «Искать в: текущем документе» (не в «Текущей сцене»). Создайте новый слой на основной сцене. Создайте на этом слое экземпляры всех фрагментов роликов, которые есть в вашей библиотеке (например: выберите всю библиотеку символов, затем перетащите выделение на сцене).

  6. Не забудьте удалить строковый маркер '####' из всех текстовых полей с помощью сценария jsfl или функции поиска / замены текста в среде IDE. Наконец, удалите слой, который вы создали для операции замены шрифта, и все экземпляры символов в нем.

person khelkun    schedule 01.01.2011
comment
Вы должны ответить на вопрос, а не другой ответ. И ваш язык оскорбительный. - person Sean Patrick Floyd; 01.01.2011