Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Общие вопросы о Flash (не затрагивающие ActionScript) (http://www.flasher.ru/forum/forumdisplay.php?f=60)
-   -   Flash CS5: Как автоматически заменить все шрифты в текстовых полях на Embedded (http://www.flasher.ru/forum/showthread.php?t=145566)

AlliAS 12.10.2010 17:46

Flash CS5: Как автоматически заменить все шрифты в текстовых полях на Embedded
 
Возникла необходимость пересохранить исходник из CS4 в CS5, но очевидно из-за переработанного механизма встраивания шрифтов, во всех текстовых полях это встраивание потерялось. Пришлось заменять вручную, но задача эта оказалась ужасно утомительной по причине наличия в проекте огромного количества полей. Поэтому возник вопрос: может быть можно делать это автоматически? И если можно, то как?

mooncar 12.10.2010 19:43

Цитата:

Сообщение от AlliAS (Сообщение 942349)
задача эта оказалась ужасно утомительной по причине наличия в проекте огромного количества полей.

Если всего много, то нужно использовать программирование!

1) Сперва создаете по одному техническому полю для внедрения для каждого шрифта и каждого нужного начертания.
Внедряете в них нужные наборы символов. Поля можно спрятать за область видимости.
2) Далее просто декларируете использование внедренных шрифтов у нужных полей:
Код AS1/AS2:

myTextField1.embedFonts = true ;
myTextField2.embedFonts = true ;
...

В принципе и сейчас можно попробовать:
Например, если есть неопределенное количество текстовых полей в мувике-контейнере mcCont, то
Код AS1/AS2:

for (i in mcCont) 
{
        if (mcCont[i].type = 'dynamic' || mcCont[i].type = 'input') //смотря что у вас
        {
                mcCont[i].embedFonts = true ;
        }
}

При этом не забыть про п.1
Если есть вложенность, то можно сделать вложенные циклы, которые обойдут все ваши объекты.

Разумеется, если имена полей заданы, то лучше задать внедрение явно, а не обходом всех объектов. Тоже циклом можно, если имена однотипны и пронумерованы:
Код AS1/AS2:

for (i = 1; i <= 30; i++)
{
        var tf:TextField = mcCont['someTextField' + i];
        tf.embedFonts = true ;
        //любые другие свойства можно тоже назначить тут же
}

PS. Примеры кода на AS2, думаю, что на AS3 нечто подобное.

Alex626 21.10.2011 21:20

Я работаю с CS4, и мне часть приходится фиксить декомпилированные файлы. Можно ли решить проюлему программно? Нужно найти все текстовые поля на всех уровнях вложенности во всём клипе. Приведите пример для большой вложенности, пожалуйста.

goodguy 21.10.2011 21:40

Цитата:

и мне часть приходится фиксить декомпилированные файлы
Здесь запрещено обсуждать файлы полученный путем декомпиляции

Alex626 21.10.2011 22:16

Я знаю. Но файлы совершенно легальные, не ворованные сайты и не чужие разработки. Это файлы из интерфейса игры Crysis, их разрешили декомпилировать сами разработчики. Я перевожу вот эту статью (оригинал). Очень нужна помощь с альтернативными вариантами внедрения шрифтов, ведь там бывает по нескольку тысяч текстовых полей, и на замену уходят недели. Это будет использоваться только модостроителями.

goodguy 21.10.2011 22:38

Во флешдевелоп есть функция Find and replace, заменяющая выбранные куски текста во всем пакете / проекте
Цитата:

их разрешили декомпилировать сами разработчики.
Что-то я сомневаюсь. Почему бы им тогда просто не выложить исходники?

Alex626 21.10.2011 22:46

Я не работаю с билдерами.

goodguy 21.10.2011 23:14

С какими билдерами?

Alex626 21.10.2011 23:23

флешдевелоп, flash biulder.

Find and Replace только заменяет текст. А мне нужно внедрить шрифты.


Часовой пояс GMT +4, время: 01:21.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.