Показать сообщение отдельно
Старый 16.10.2011, 01:03
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 12  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
dimarik, а можно поподробнее? У меня не получается без регистрации, даже если гружу в ApplicationDomain.currentDomain.
То есть вот так работает:
(SWF со шрифтом, Fonts это класс Документа)
Код AS3:
package  
{
	import flash.display.Sprite;
	import flash.text.Font;
 
	public class Fonts extends Sprite
	{
		[Embed(source='../lib/consola.ttf', fontName="consola")] public const CONSOLA:Class;
 
		public function Fonts() 
		{
			Font.registerFont(CONSOLA);
		}
	}
}
(загружающая SWF)
Код AS3:
package 
{
	import flash.display.Loader;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.net.URLRequest;
	import flash.system.ApplicationDomain;
	import flash.system.LoaderContext;
	import flash.text.Font;
	import flash.text.TextField;
	import flash.text.TextFormat;
 
	public class Main extends Sprite 
	{
		public function Main():void 
		{ 
			var context:LoaderContext = new LoaderContext(false, ApplicationDomain.currentDomain);
			var loader:Loader = new Loader();
			loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
			loader.load(new URLRequest("consola.swf"), context);
		}
 
		private function onComplete(event:Event):void 
		{
			trace(Font.enumerateFonts()); // [object Fonts_CONSOLA]
			var format:TextFormat = new TextFormat("consola", 16);
			var txt:TextField = new TextField();
			addChild(txt);
			txt.embedFonts = true;
			txt.defaultTextFormat = format;
			txt.width = 400;
			txt.text = "I'm your Consola Font!"
		}
	}
}
Это работает и без указания контекста лоадеру. Но вот без регистрации – никак))
__________________
Reality.getBounds(this);