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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 11.11.2011, 02:49
stweet вне форума Посмотреть профиль Отправить личное сообщение для stweet Найти все сообщения от stweet
  № 1  
Ответить с цитированием
stweet
 
Аватар для stweet

Регистрация: Mar 2010
Адрес: 54.713862552265084 = 20.442724227905273
Сообщений: 449
Отправить сообщение для stweet с помощью Skype™
По умолчанию Передача шрифта из swf in swf?

Есть swf файл который подгружает в себя ещё один swf файл и пытается передать ему шрифт.
Что пытаюсь сделать я.

Код AS3:
 
// код из флешки которая передаёт шрифт.
[Embed(	source = 'Arial.ttf', fontFamily = 'arial', embedAsCFF = 'false')] private var Arial:Class;
 
my_object.add_fonts = Arial;
 
// код из подгружаемой флешки.
public function set add_fonts (font:Class):void {
	Font.registerFont(font);
}
Возможно ли это реализовать, если да то что не так я делаю?
Заранее спасибо.
__________________
Спросишь, дурак на минуту. Если не спросишь, дурак на всю жизнь!

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

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Нафига?!
Есть fontAssets - где прописываются ВСЕ эмбеды. далее ассет компилируется. Посмотрим правде в глаза
Код AS3:
var field:TextField = FieldTextClass.addField( 'font' , size )
Ну некий клдасс создающий текстовое поле с нужным нам шрифтом и размером. Итого если в основной флешке - этот шрифт подгружен и мы можем юзать его по имени например как указал я в примере, то в подгруженной - написав ТОЖЕ самое - шрифт будет встроен, ну это поидее...проверьте
__________________
Марк Tween

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

Регистрация: Mar 2010
Адрес: 54.713862552265084 = 20.442724227905273
Сообщений: 449
Отправить сообщение для stweet с помощью Skype™
Интересно "FieldTextClass" это откуда?
А так, подход как раз по мне, оч удобно)
__________________
Спросишь, дурак на минуту. Если не спросишь, дурак на всю жизнь!

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

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Цитата:
Интересно "FieldTextClass" это откуда?
Делюсь

Код 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 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:
package com.in4core.utils 
{
	/**
	 * ...
	 * @author in4core
	 */
	public class FontAssets extends Object 
	{
 
 
		[Embed(source = '/courbd.ttf', fontName = 'f_1'
		,fontFamily  = "Courner"
		,fontStyle   ='bold'
		,fontWeight  = 'bold'
		,mimeType = "application/x-font-truetype"
		,embedAsCFF = 'false')]
		public static const ver:Class;
 
 
 
	}
use
Код AS3:
FontAssets;
var tf:TextField = DisplayText.addField('f_1' , 14);
tf.text = 'hello world';
__________________
Марк Tween


Последний раз редактировалось in4core; 11.11.2011 в 03:21.
Старый 11.11.2011, 03:39
stweet вне форума Посмотреть профиль Отправить личное сообщение для stweet Найти все сообщения от stweet
  № 5  
Ответить с цитированием
stweet
 
Аватар для stweet

Регистрация: Mar 2010
Адрес: 54.713862552265084 = 20.442724227905273
Сообщений: 449
Отправить сообщение для stweet с помощью Skype™
Т.е. я передаю уже готовый класс, я правильно понял?
В целом понятно, спасибо, тоже удобно, в целом до того и доходил, так и думал передавать уже готовые объекты.

Добавлено через 10 минут
И всё равно.
Если я в загружаемой swf-ки я использую свои стили текста?

Добавлено через 32 минуты
К примеру у меня есть класс:
Код AS3:
package stlib.fonts
{
	import flash.text.Font;
 
	public class RegistrationFonts extends Font
	{
		[Embed(source = 'sours/ARIAL.TTF',
			fontFamily = 'arial',
			embedAsCFF = 'false')]
			private var Arial1:Class;
 
		[Embed(source = 'sours/ARIALBD.TTF',
			fontFamily = 'arialbd',
			embedAsCFF = 'false')]
			private var Arial2:Class;
 
		[Embed(source = 'sours/ARIALBI.TTF',
			fontFamily = 'arialbi',
			embedAsCFF = 'false')]
			private var Arial3:Class;
 
		[Embed(source = 'sours/ARIALI.TTF',
			fontFamily = 'ariali',
			embedAsCFF = 'false')]
			private var Arial4:Class;
 
		[Embed(source = 'sours/ARIBLK.TTF',
			fontFamily = 'ariblk',
			embedAsCFF = 'false')]
			private var Arial5:Class;
 
		[Embed(source = 'sours/WEBDINGS.TTF',
			fontFamily = 'webdings',
			embedAsCFF = 'false')]
			private var Sumbol1:Class;
 
		[Embed(source = 'sours/WINGDING.TTF',
			fontFamily = 'wingding',
			embedAsCFF = 'false')]
			private var Sumbol2:Class;
 
		public function RegistrationFonts()
		{
			registerFont(Arial1);
			registerFont(Arial2);
			registerFont(Arial3);
			registerFont(Arial4);
			registerFont(Arial5);
			registerFont(Sumbol1);
			registerFont(Sumbol2);
		}
 
		// get all font name
		static public function get ALLFONTNAME ():String
		{
			var _ALLFONTNAME	:String	= '';
 
			var _arr		:Array	= Font.enumerateFonts();
			    _arr.sortOn ( "fontName", Array.CASEINSENSITIVE );
 
			for (var i:int = 0; i < _arr.length; i++)
				if (i != _arr.length - 1) _ALLFONTNAME += _arr[i].fontName + "\n";
				else _ALLFONTNAME += _arr[i].fontName;
 
			return _ALLFONTNAME;
		}
	}
}
есть класс, Main

Код AS3:
 
package 
{
	import flash.display.Sprite;
	import flash.events.Event;
 
	public class Main extends Sprite 
	{
		RegistrationFonts;
 
		public function Main()
		{
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
		}
 
		private function init(e:Event = null):void 
		{
			removeEventListener(Event.ADDED_TO_STAGE, init);
			// entry point
 
			var newSwf:Object = {  };
 
			SWFLoader.load('mySwf.swf', function (ar:Object):void { 
				newSwf =  ar;
				newSwf.addFonts = ? ; // Вот тут я хочу передать зарегистрированные шрифты.
			} );
		}
	}
}
Загружаемая флешка.

Код AS3:
package gallery 
{
	import flash.display.Sprite;
	import flash.events.Event;
 
	public class Gallery extends Sprite 
	{
		public function Gallery()
		{
 
		}
 
		public function addFonts (?):void { // Как мне воспользоваться шрифтами?
 
 
		}
	}
}
Добавлено через 45 минут
Цитата:
Сообщение от in4core Посмотреть сообщение
Код AS3:
var field:TextField = FieldTextClass.addField( 'font' , size )
Ну некий клдасс создающий текстовое поле с нужным нам шрифтом и размером. Итого если в основной флешке - этот шрифт подгружен и мы можем юзать его по имени например как указал я в примере, то в подгруженной - написав ТОЖЕ самое - шрифт будет встроен, ну это поидее...проверьте
И ещё, при таком подходе компилятор материться.
__________________
Спросишь, дурак на минуту. Если не спросишь, дурак на всю жизнь!


Последний раз редактировалось stweet; 11.11.2011 в 04:13.
Создать новую тему Ответ Часовой пояс GMT +4, время: 03:41.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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