Много SWF-файлов, один шрифт для вставки, без создания текстовых полей через Actionscript? - PullRequest
1 голос
/ 17 января 2012

Можно ли встроить шрифт в один SWF-файл, который будет использоваться во многих других SWF-файлах, при этом сохраняя возможность выполнять все расположение текста и настройку с помощью Flash IDE в этих SWF-файлах?

Я знаю, что могу извлечь шрифт из внешнего SWF-файла, зарегистрировать его и использовать в новом TextField. Однако было бы неплохо, если бы мне не приходилось создавать каждое текстовое поле в коде.

Например, следующее происходит после загрузки в SWF, в котором есть шрифт, и вызова следующего с использованием имени этого шрифта:

Font.registerFont();

Исходное текстовое поле ничего не показывает, в то время как вновь созданное поле, ИСПОЛЬЗУЮЩЕЕ ФОРМАТ ИЗ ОРИГИНАЛА, показывает совершенно нормально.

        var format:TextFormat = onStageTextField.getTextFormat();

        onStageTextField.embedFonts = true;
        onStageTextField.defaultTextFormat = format;
        onStageTextField.text = "My Text";

        var newTextField:TextField = new TextField();
        newTextField.width = 300;
        newTextField.embedFonts = true;
        newTextField.defaultTextFormat = format;
        newTextField.text = "My Text";
        contentMC.addChild(newTextField);

1 Ответ

1 голос
/ 18 января 2012

Боюсь, короткий ответ на ваш главный вопрос - «нет».Есть способы встроить шрифт в код и через IDE, но я не знаю, как сделать гибридный подход, как вы описали.

Альтернативный подход:

В вашем основномFLA Создайте мувиклипы, содержащие каждый стиль текстового поля (или группы текстовых полей), который вы хотите повторно использовать, стилизовать и встраивать в IDE.Назовите дочерние TextFields что-то вроде «txt».Дайте идентификаторы связи MC.Теперь, когда вы загружаете свой дочерний SWF-файл, создайте и добавьте экземпляры MC для любых текстовых полей, которые необходимо отобразить, используя flash.utils.getDefinitionByName ().Обновляйте текст в каждом экземпляре следующим образом: myMC.txt.text = "my text".

Вышеприведенное должно хорошо работать для динамического текста во многих полях.Когда вы говорите «расположение текста» ... вы говорите о настройке разрыва строки?

...