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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 31.03.2011, 17:06
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 31  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,782
in4core, регистрацию в статическом блоке, например. У тебя вообще просто так вызывается пустой метод.

Старый 31.03.2011, 17:09
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 32  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Psycho Tiger

Смотрите - - нужно запускать различные библиотеки в классе, таким образом мы их запускаем в любой момент когда захотим, а так выходит нужно каждый раз заходить в конструктор и менять там строчку библиотеки. Вообщем, от того , что я так делаю никому хуже не будет, а тем более не засорит и не сделает код хардкодом

Добавлено через 1 минуту
Цитата:
У тебя вообще просто так вызывается пустой метод.
Ну как же, если я его не вызову шрифты во флеше не появятся, значит не ПУСТОЙ)) или вы считаете что флеш сам по себе засунет класс не добавив его вручную?

Старый 31.03.2011, 17:13
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 33  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,782
in4core, это называется «мы подсмотрели за большими дядями», но совершенно не понимая, что и для чего используется и что такое «упоминание класса в коде». Поэтому городим аж целый магический метод, который якобы занимается регистрацией.

Вместо «DisplayText.registerFontLibraries(FontAssets);», можно обойтись просто «FontAssets;», будет открытием.

Старый 31.03.2011, 17:14
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 34  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Не понял ничего про
Код AS3:
		public static function registerFontsLibraries(fontAssets:Class)  : void
		{
			fontAssets;
		}
и связь со статичной линковкой. Что такого упоминается в этом методе, чтобы оно вкомпилялось?

Добавлено через 1 минуту
Пасиб, Дениска. А то я чуть голову не взорвал об это.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 31.03.2011, 17:20
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 35  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Цитата:
Вместо «DisplayText.registerFontLibraries(FontAssets);», можно обойтись просто «FontAssets;», будет открытием.
Именно так, но я могу ошибаться, разве он не будет доступен ЛИШЬ в том классе где мы его написали? Тоесть в вашем случае он будет доступен например в Main но не доступен В subMain или я ошибаюсь и он станет глобальным?

Старый 31.03.2011, 17:22
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 36  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,782
Ошибаешься.

Но, как юный падаван, неплохо повеселил, придумав «универсальный» способ импорта любых классов в виде такого джедайского метода. Можешь даже стереть внутри метода единственную строку, от этого кунг-фу станет ещё более профессиональным.

Старый 31.03.2011, 17:23
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 37  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Кстати, можно попросить ту swf сварганить нам нужный экземпляр (TextField) и тем самым обойти ограничения использования встроенного шрифта только в конкретной swf. Так создаются объекты (не только TextField) в контексте модуля во Flex. И в этом фреймворке нигде нет упоминания Font.registerFont по причине, описанной мною выше.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 17.04.2011, 06:37
ZergMaster вне форума Посмотреть профиль Отправить личное сообщение для ZergMaster Найти все сообщения от ZergMaster
  № 38  
Ответить с цитированием
ZergMaster
 
Аватар для ZergMaster

Регистрация: May 2008
Адрес: Питер
Сообщений: 385
Отправить сообщение для ZergMaster с помощью ICQ Отправить сообщение для ZergMaster с помощью Skype™
странно, делаю все так, как описано в первом посте (правда, у меня Flash CS 5)
и выдает
Код:
D:\JJJob\FINger\RELEASE\classes\Fonts.as, Line 6	Невозможно использовать "classes/fonts/ARLRDBD.TTF" для транскодинга
делаю так:

Код AS3:
package  classes {
 
	public class Fonts {
 
 
		[Embed(source = 'classes/fonts/ARLRDBD.TTF', fontName = "ArialBold")]
		public static var fontClass:Class;
 
		public function Fonts() {
 
 
			// constructor code
		}
 
		public static function get arialFont():Font
			{
				Font.registerFont(Lib.fontClass)
				return (new Fonts.fontClass() as Font)
				}
 
	}
 
}
Добавлено через 16 минут
хм... вроде заэмбдилось..
только все равно не видно шрифт... (

Код AS3:
package  classes {
	import flash.text.Font;
 
	public class Fonts {
 
 
		[Embed(source = 'ARLRDBD.TTF', fontName = 'ArialBold')]
		 static public var fontClass:Class;
 
 
 
		public static function get arialFont():Font
			{
				Font.registerFont(Fonts.fontClass)
				return (new Fonts.fontClass() as Font)
				}
 
	}
 
}
Код AS3:
private var tForm1:TextFormat = new TextFormat();
 
 
tForm1.font = Fonts.arialFont.fontName;
 
 
var tf:TextField = new TextField();
				tf.x = 0;
				tf.y = 0;
				tf.autoSize = 'left';
				tf.background =true;
				tf.backgroundColor = 0x00FF99;
				tf.embedFonts = true;				
				tf.text = Lang.langs[i];
				tf.defaultTextFormat = tForm1;
__________________
while(live()) { hope(); }


Последний раз редактировалось ZergMaster; 17.04.2011 в 06:55.
Старый 17.04.2011, 07:28
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 39  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
А если "заэмбедить" как положено? Как минимум указать MIME Type?
Код AS3:
[Embed(source = 'ARLRDBD.TTF', fontName = 'ArialBold', mimeType = 'application/x-font-truetype', embedAsCFF = 'false')]
Шрифт обрабатывается компилятором во внутренний, "свой" формат (например cff (Compact Font Format) для использования FTE (Flash Text Engine)), а не просто записывается в swf как файл ttf. MIME Type указывает компилятору тип ресурса – как именно его включать в swf.
__________________
Reality.getBounds(this);


Последний раз редактировалось Wolsh; 17.04.2011 в 07:43.
Старый 17.04.2011, 12:08
f.g.programmer вне форума Посмотреть профиль Отправить личное сообщение для f.g.programmer Найти все сообщения от f.g.programmer
  № 40  
Ответить с цитированием
f.g.programmer
 
Аватар для f.g.programmer

блогер
Регистрация: Sep 2010
Адрес: Россия
Сообщений: 137
Записей в блоге: 3
Цитата:
хм... А есть какой-нибудь способ
1) создать динамическое текстовое поле в Flash CSx
2) указать на панели свойств: шрифт, тип сглаживания, полужирный/курсив, размер и выравнивание для него
3) не внедрять этот шрифт в Flash CSx, а вместо этого
4) загрузить этот шрифт в рантайме
5) когда шрифт загружен и зарегистрирован - вывести текст в заранее созданном в CSx поле.
Возможно уже кто-то ответил, но тут слишком много бессодержательных комментов и я не прочитал. Судя по всему это до сих пор невозможно. В динамическом поле, созданом средой Flash Ide нельзя использовать подгруженные заембеженые шрифты. Мною это воспринимается как баг. Мы его обходим клонирую текстовые поля в коде.
Если кто-то докажет что я не прав, буду рад.

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

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

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


 


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


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