PDA

Просмотр полной версии : Flash CS5: Как автоматически заменить все шрифты в текстовых полях на Embedded


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

mooncar
12.10.2010, 19:43
задача эта оказалась ужасно утомительной по причине наличия в проекте огромного количества полей.
Если всего много, то нужно использовать программирование!

1) Сперва создаете по одному техническому полю для внедрения для каждого шрифта и каждого нужного начертания.
Внедряете в них нужные наборы символов. Поля можно спрятать за область видимости.
2) Далее просто декларируете использование внедренных шрифтов у нужных полей:
myTextField1.embedFonts = true ;
myTextField2.embedFonts = true ;
...


В принципе и сейчас можно попробовать:
Например, если есть неопределенное количество текстовых полей в мувике-контейнере mcCont, то
for (i in mcCont)
{
if (mcCont[i].type = 'dynamic' || mcCont[i].type = 'input') //смотря что у вас
{
mcCont[i].embedFonts = true ;
}
}

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

Разумеется, если имена полей заданы, то лучше задать внедрение явно, а не обходом всех объектов. Тоже циклом можно, если имена однотипны и пронумерованы:
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, их разрешили декомпилировать сами разработчики. Я перевожу вот эту статью (http://wiki.crymod.net/index.php/%D0%98%D1%81%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B4%D0%B5%D0%BA%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%B D%D0%BD%D1%8B%D1%85_Flash-%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2) (оригинал (http://www.crydev.net/wiki/index.php/Fixing_the_Decompiled_Flash_Files)). Очень нужна помощь с альтернативными вариантами внедрения шрифтов, ведь там бывает по нескольку тысяч текстовых полей, и на замену уходят недели. Это будет использоваться только модостроителями.

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 только заменяет текст. А мне нужно внедрить шрифты.