Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 25.07.2013, 12:51
Fogflasher вне форума Посмотреть профиль Отправить личное сообщение для Fogflasher Найти все сообщения от Fogflasher
  № 11  
Ответить с цитированием
Fogflasher

Регистрация: Mar 2013
Сообщений: 290
По умолчанию Runtime version

Пробую запустить программу Korchy по внедрению шрифтов.

Создал файл Font1.fla, в котором вот такие настройки:
PROPERTIES:
Название: snap4873.jpg
Просмотров: 426

Размер: 61.1 Кб

LINKAGE:
Название: snap4874.jpg
Просмотров: 421

Размер: 72.5 Кб

Далее, создал файл класса, который он привел в своем блоге, подставив имена, а также оставив только одну строку с регистерфонт:

Код AS3:
package
{
   import flash.display.Loader;
   import flash.display.LoaderInfo;
   import flash.events.Event;
   import flash.events.EventDispatcher;
   import flash.net.URLRequest;
   import flash.text.Font;
 
   public class FontsManager extends EventDispatcher
   {
 
      private var FontsLoader:Loader;
      private var FontsLoaderInfo:LoaderInfo;
      private var FontsLoaded:Boolean;
      // Константы событий
      public static const FONTS_LOADED:String = "EvFontsLoaded"; // шрифт загружен
 
      public function FontsManager() 
	  {
         // Конструктор
         super();
         FontsLoaded = false;
      }
 
      public function LoadFontsFromExternalSWF(Value:String):void
	  {
         // Загрузить swf со шрифтами
         if (FontsLoaded == false)
		 {
            FontsLoader = new Loader();
            FontsLoaderInfo = FontsLoader.contentLoaderInfo;
            FontsLoaderInfo.addEventListener(Event.COMPLETE, OnFontsLoaded);
            FontsLoader.load(new URLRequest(Value));
         }
      }
 
      private function OnFontsLoaded(e:Event):void
	  {
         // SWF со шрифтами загружена
         if(FontsLoaded==false)
		 {
            Font.registerFont(Class(LoaderInfo(e.target).applicationDomain.getDefinition("CyrillicHover")));
//          Font.registerFont(Class(LoaderInfo(e.target).applicationDomain.getDefinition("FontName1Italic")));
//          Font.registerFont(Class(LoaderInfo(e.target).applicationDomain.getDefinition("FontName1Bold")));
//          Font.registerFont(Class(LoaderInfo(e.target).applicationDomain.getDefinition("FontName2")));
            FontsLoaded = true;
            FontsLoaderInfo.removeEventListener(Event.COMPLETE, OnFontsLoaded);
            dispatchEvent(new Event(FontsManagerVn.FONTS_LOADED));
         }
      }
 
      public static function CorrectFontName(vFontName:String, vFontSize:uint=12):String 
	  {
         // Проверка, есть ли такой встроенный (загруженный из сторонней SWF) шрифт заданного размера
         // если есть - возвращает его имя, если нет - возвращает исходное имя шрифта
         var EmbeddedFonts:Array = Font.enumerateFonts(false);
         for (var i:uint = 0; i < EmbeddedFonts.length; i++)
		 {
            if (Font(EmbeddedFonts[i]).fontName == vFontName + "_" + String(vFontSize) + "pt_st")
			{
               return vFontName + "_" + String(vFontSize) + "pt_st";
            }
         }
         return vFontName;
      }
 
   }
}
Далее сделал основной класс, в котором ввёл такой код:
Код AS3:
package
{
	   import flash.display.*;
	   import flash.events.*;
	   import flash.net.*;
	   import flash.text.*;
 
	   public class Runtime_font_embed extends MovieClip
	   {
 
			public function Runtime_font_embed()
			{
 
 
			var MyFontsManager:FontsManager = new FontsManager();
			MyFontsManager.addEventListener(FontsManager.FONTS_LOADED, Continue);
			MyFontsManager.LoadFontsFromExternalSWF("Font1.swf");
 
			var text1 = new TextField();
			var format1 = new TextFormat();
			format1.font = FontsManager.CorrectFontName("CyrillicHover", 30);
			text1.setTextFormat(format1);
 
			}
 
 
	   }
 
}
И в результате выполнения получаю:

Цитата:
1120: Access of undefined property FontsManagerVn. dispatchEvent(new Event(FontsManagerVn.FONTS_LOADED));
(Думал, может проблема в именах, поигрался с заменой Name1 на CyrillicHover и обратно, но нифига.)

Что не так с этим FontsManagerVn?

Создать новую тему   Часовой пояс GMT +4, время: 03:03.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
font embedding , runtime , внедрение шрифтов , шрифт

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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