Показать сообщение отдельно
Старый 28.10.2009, 00:51
Firexel вне форума Посмотреть профиль Отправить личное сообщение для Firexel Найти все сообщения от Firexel
  № 1  
Ответить с цитированием
Firexel

Регистрация: Jan 2008
Сообщений: 28
По умолчанию Правильное встраивание шрифта в проект

Всем привет. Столкнулся с извечной проблемой русского текста во флеш. Поиск по форуму и гуглу внятного ответа не дали.

Есть проект на AS3, где все текстовые поля создаются динамически. Есть встроенный через библиотеку шрифт, который содержит кириллические глифы (sic!). Embedded выставлен в true, а русский текст так и не хочет отображаться. Вот класс, который реализует текстовое поле:

Код AS1/AS2:
package main {
	import flash.text.*;
	import flash.events.Event;
 
	public class SimpleText extends TextField
	{
		private var format:TextFormat = new TextFormat();
		private var _font:BeauFont;
 
		// Initialization:
		public function SimpleText(size:Number, color:Number=0) 
		{ 
			embedFonts = true; // <-- ага
 
			format.size = size;
			format.color = color;
			autoSize = TextFieldAutoSize.LEFT;
			antiAliasType = AntiAliasType.ADVANCED;
			multiline = false;
			selectable = false;
 
			addEventListener(Event.ADDED_TO_STAGE, added);
		}
 
		public function added(e:Event):void
		{
			removeEventListener(Event.ADDED_TO_STAGE, added);
 
			_font = new BeauFont();       // <-- встроенный шрифт
			format.font = _font.fontName;
			setTextFormat(format);
		}
 
		override public function set text(s:String):void
		{
			super.text = s;
			setTextFormat(format);
		}
	}
 
}