![]() |
|
||||||||||
|
|||||
|
Есть swf файл который подгружает в себя ещё один swf файл и пытается передать ему шрифт.
Что пытаюсь сделать я. // код из флешки которая передаёт шрифт. [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); } Заранее спасибо.
__________________
Спросишь, дурак на минуту. Если не спросишь, дурак на всю жизнь! |
|
|||||
|
[+4 06.05.14]
|
Нафига?!
Есть fontAssets - где прописываются ВСЕ эмбеды. далее ассет компилируется. Посмотрим правде в глаза Ну некий клдасс создающий текстовое поле с нужным нам шрифтом и размером. Итого если в основной флешке - этот шрифт подгружен и мы можем юзать его по имени например как указал я в примере, то в подгруженной - написав ТОЖЕ самое - шрифт будет встроен, ну это поидее...проверьте
__________________
Марк Tween |
|
|||||
|
Интересно "FieldTextClass" это откуда?
А так, подход как раз по мне, оч удобно)
__________________
Спросишь, дурак на минуту. Если не спросишь, дурак на всю жизнь! |
|
|||||
|
[+4 06.05.14]
|
Цитата:
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; } } } 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; }
__________________
Марк Tween Последний раз редактировалось in4core; 11.11.2011 в 03:21. |
|
|||||
|
Т.е. я передаю уже готовый класс, я правильно понял?
В целом понятно, спасибо, тоже удобно, в целом до того и доходил, так и думал передавать уже готовые объекты. Добавлено через 10 минут И всё равно. Если я в загружаемой swf-ки я использую свои стили текста? Добавлено через 32 минуты К примеру у меня есть класс: 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; } } } 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 = ? ; // Вот тут я хочу передать зарегистрированные шрифты. } ); } } } package gallery { import flash.display.Sprite; import flash.events.Event; public class Gallery extends Sprite { public function Gallery() { } public function addFonts (?):void { // Как мне воспользоваться шрифтами? } } } Цитата:
__________________
Спросишь, дурак на минуту. Если не спросишь, дурак на всю жизнь! Последний раз редактировалось stweet; 11.11.2011 в 04:13. |
![]() |
![]() |
Часовой пояс GMT +4, время: 03:41. |
|
|
« Предыдущая тема | Следующая тема » |
|
|