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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 31.03.2011, 03:22
DZHETIGAPA вне форума Посмотреть профиль Отправить личное сообщение для DZHETIGAPA Найти все сообщения от DZHETIGAPA
  № 1  
Ответить с цитированием
DZHETIGAPA
[+3 18.04.11]

Регистрация: Dec 2010
Сообщений: 342
По умолчанию Программная встройка шрифта

Встраиваю шрифт во FD. Делаю так:
Код AS3:
[Embed(source = '../lib/MyriadPro-Regular.otf', fontName = "MyriadPro")]
		static public var fontClass:Class;
 
		static public function get myriadFont():Font
		{
			Font.registerFont(Lib.fontClass)
			return (new Lib.fontClass() as Font)
		}
Затем присваиваю этот шрифт:
Код AS3:
tFormat.font = Lib.myriadFont.fontNameж
t.defaultTextFormat = tFormat;
Но ничего не меняется? В чем дело?

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

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Дело в шляпе.
use it

Код AS3:
package com.in4core.utils 
{
	/**
	 * ...
	 * @author in4core
	 */
	public class FontAssets 
	{
 
		/*public static const LOWERCASE_SWEDISH_CHARS:String    = "U+00E5, U+00E4, U+00F6, U+00E9";
		public static const UPPERCASE_SWEDISH_CHARS:String    = "U+00C5, U+00C4, U+00D6, U+00C9";
		public static const NUMBER_CHARS:String         	  = "U+0030-U+0039";
		public static const UPPERCASE_A_TO_Z:String      	  = "U+0041-U+005A";
		public static const LOWERCASE_A_TO_Z:String     	  = "U+0061-U+007A";
		public static const PUNCTUATION:String          	  = "U+005B-U+0060";
		public static const STANDARD_SWEDISH:String           = LOWERCASE_A_TO_Z + ", " + UPPERCASE_A_TO_Z + ", " 
		+ LOWERCASE_SWEDISH_CHARS + ", " + UPPERCASE_SWEDISH_CHARS + ", " + NUMBER_CHARS + ", " + PUNCTUATION;*/
 
 
		[Embed(source = '../../../iFlash705.ttf', fontName = 'f_1'
		,fontFamily  = "iFlash"
		,fontStyle   ='normal'
		,fontWeight  = 'normal'
		,mimeType = "application/x-font-truetype"
		,embedAsCFF = 'false')]
		public static const i705:Class;
 
		[Embed(source = '../../../iFlash705b.ttf', fontName = 'f_2'
		,fontFamily  = "iFlash"
		,fontStyle   ='normal'
		,fontWeight  = 'bold'
		,mimeType = "application/x-font-truetype"
		,embedAsCFF = 'false')]
		public static const i705b:Class;
 
		[Embed(source = '../../../iFlash705Mono.ttf', fontName = 'f_3'
		,fontFamily  = "iFlash"
		,fontStyle   ='normal'
		,fontWeight  = 'normal'
		,mimeType = "application/x-font-truetype"
		,embedAsCFF = 'false')]
		public static const i705m:Class;
 
		[Embed(source = '../../../3593.ttf', fontName = 'f_4'
		,fontFamily  = ""
		,fontStyle   ='normal'
		,fontWeight  = 'normal'
		,mimeType = "application/x-font-truetype"
		,embedAsCFF = 'false')]
		public static const ver:Class;
 
	}
 
}
Код AS3:
package com.in4core.text 
{
	import flash.text.TextField;
	import flash.text.TextFormat;
	/**
	 * ...
	 * @author in4core
	 */
	public class DisplayText extends Object 
	{
		private static var _textfield:TextField;
 
 
		public static function registerFontsLibraries(fontAssets:Class)  : void
		{
			fontAssets;
		}
		public static function addField ( font:String = null , size:uint = 12, bitmapFonts:Boolean = false, 
 
		autosize:String = 'left', isMulti:Boolean = false, text:String = '' ) : TextField
 
		{
			_textfield = null;
 
			_textfield = new TextField();
 
			_textfield.defaultTextFormat = setFormat(size, font);
 
			_textfield.autoSize = autosize;
 
			_textfield.text = text;
 
			if (isMulti) _textfield.multiline = true;
 
			_textfield.selectable = false;
 
			if (!bitmapFonts) _textfield.antiAliasType = 'advanced';
 
			if (font != null) _textfield.embedFonts = true;
			else font = '_sans';
 
			return _textfield;
		}
 
		private static function setFormat( size:uint, font:String ):TextFormat {
 
			var tf:TextFormat = new TextFormat();
 
			tf.size = size;
 
			tf.font = font;
 
 
 
			return tf;
		}
 
	}
 
}
Подстрой под себя и пользуйся)) Это просто пример, как использую я

Код AS3:
DisplayText.registerFontLibraries(FontAssets);
 
var tf:TextField = DisplayText.addField('f_1' , 10 , false )
tf.text = 'text';
tf.textColor = 0xFF0000

Старый 31.03.2011, 05:32
olexandr вне форума Посмотреть профиль Отправить личное сообщение для olexandr Посетить домашнюю страницу olexandr Найти все сообщения от olexandr
  № 3  
Ответить с цитированием
olexandr
 
Аватар для olexandr

Регистрация: Aug 2007
Адрес: Ukraine, Kyiv
Сообщений: 643
Отправить сообщение для olexandr с помощью ICQ Отправить сообщение для olexandr с помощью MSN Отправить сообщение для olexandr с помощью Skype™
недостаточно данных для выяснения причины
может быть, вы банально, embedFonts не выставили у TextField
__________________
сайт, vk

Старый 31.03.2011, 10:59
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 4  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Цитата:
Код AS3:
static public function get myriadFont():Font
		{
			Font.registerFont(Lib.fontClass)
			return (new Lib.fontClass() as Font)
		}
плохой геттер. При вызове всегда создается новый экземпляр Font. И вы используете его, только для получения имени. Имя можно вытянуть из Font.enumerateFonts(false) или как-то так.


Цитата:
Дело в шляпе.
use it
Жестко, шведские символы, как мне создать текст с жирным италиком?
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 31.03.2011, 11:30
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 5  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,112
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
Вопрос не по теме: как правильнее назвать функцию — "registerFontsLibraries" или "registerFontLibraries" (без "s")?

in4core, у вас вообще и так и так используется, опечатка.
__________________
hauts.ru

Старый 31.03.2011, 12:05
DZHETIGAPA вне форума Посмотреть профиль Отправить личное сообщение для DZHETIGAPA Найти все сообщения от DZHETIGAPA
  № 6  
Ответить с цитированием
DZHETIGAPA
[+3 18.04.11]

Регистрация: Dec 2010
Сообщений: 342
Цитата:
Сообщение от olexandr Посмотреть сообщение
недостаточно данных для выяснения причины
может быть, вы банально, embedFonts не выставили у TextField
Мда... в этом и было дело. Просто программно шрифты в первый раз внедрял. Поэтому и возникли проблемы.

Всем спасибо!!!

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

Регистрация: Sep 2002
Сообщений: 30,784
Цитата:
Сообщение от Hauts Посмотреть сообщение
Вопрос не по теме: как правильнее назвать функцию — "registerFontsLibraries" или "registerFontLibraries" (без "s")?

in4core, у вас вообще и так и так используется, опечатка.
Более того, метод вообще ничего не делает.

Старый 31.03.2011, 12:50
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 8  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,112
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
etc, а если бы делал, то как правильнее назвать?
__________________
hauts.ru

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

Регистрация: Sep 2002
Сообщений: 30,784
registerFontLibraries

Но у меня бы такого метода в принципе не было бы.

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

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
хм... А есть какой-нибудь способ
1) создать динамическое текстовое поле в Flash CSx
2) указать на панели свойств: шрифт, тип сглаживания, полужирный/курсив, размер и выравнивание для него
3) не внедрять этот шрифт в Flash CSx, а вместо этого
4) загрузить этот шрифт в рантайме
5) когда шрифт загружен и зарегистрирован - вывести текст в заранее созданном в CSx поле.

Цель в том, чтобы не прописывать параметры шрифта вручную, а просто получить ссылку на поле и прописать ему embedFonts = true. Соответственно, когда у нас все шрифты загружены, все должно отображаться.

Сейчас попробовал - не получается =(
__________________
...вселенская грусть

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

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

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


 


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


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