Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Помогите с Embed! (http://www.flasher.ru/forum/showthread.php?t=158537)

GooDMAGE 20.06.2011 20:54

Помогите с Embed!
 
Всем привет!
Как встроить шрифт во флешку?
На данный момент делаю так:
Код AS3:

package bin.Text 
{
        import flash.display.MovieClip;
        import flash.text.*;
        /**
        * ...
        * @author GooDMAGE
        */

        public class Text extends MovieClip
        {
                [Embed (source = "fonts\visitor1.ttf", fontFamily = "Visitor", mimeType = "application/x-font-truetype", embedAsCFF = "false")]
 
                //Vars
                private var Name:TextField;
                private var style:TextFormat;
 
                public function Text()
                {       
                        style = new TextFormat();
                        style.font = "Visitor";
                        style.size = 15;
                        style.color = 0xFFFFFF;
                }
 
                public function TEXT(TexT:String, cX:int, cY:int):void
                {
                        Name = new TextField;
                        Name.embedFonts = true;
                        Name.setTextFormat(style);
                        Name.defaultTextFormat = style;
                        Name.antiAliasType = AntiAliasType.NORMAL;
                        Name.selectable = false;
                        Name.type = "dynamic";
                        Name.autoSize = TextFieldAutoSize.CENTER;
                        Name.text = TexT;
                        Name.x = cX;
                        Name.y = cY;
                        Name.maxChars = 15;
                        addChild(Name);
                }
 
        }
 
}

Но текст не отображается. Хотя если закомментить Name.embedFonts = true; то текст появляется ,но с обычным шрифтом. Код пишу во FD. Знающих прошу помочь/объяснить почему не отображается шрифт ,и как это исправить!:)

samana 20.06.2011 21:17

Вот этот шаблон всегда мне помогает:
Код AS3:

[Embed(source = '../lib/winter.ttf',fontName='имя',embedAsCFF='false')] public var winterFont:Class;
 
var tf:TextField = new TextField();
tf.embedFonts = true;
tf.defaultTextFormat = new TextFormat("имя", 15, 0);


GooDMAGE 20.06.2011 21:20

Хм.... шас попробую!
что за путь? "../lib/winter.ttf"? lib - это библиотека?

dimarik 20.06.2011 21:39

просто путь

GooDMAGE 20.06.2011 21:53

Хм... модифицировал код
Код AS3:

package bin.Text 
{
        import flash.display.MovieClip;
        import flash.text.*;
        /**
        * ...
        * @author GooDMAGE
        */

        public class Text extends MovieClip
        {
                [Embed (source = 'fonts\visitor1.ttf', fontName = 'Visitor', embedAsCFF = 'false')] public var visitor_font:Class;
 
                //Vars
                private var Name:TextField;
 
                public function Text()
                {       
 
                }
 
                public function TEXT(TexT:String, cX:int, cY:int):void
                {
                        Name = new TextField;
                        Name.embedFonts = true;
                        Name.defaultTextFormat = new TextFormat("Visitor", 15 , 0);
                        Name.antiAliasType = AntiAliasType.ADVANCED;
                        Name.selectable = false;
                        Name.type = "dynamic";
                        Name.autoSize = TextFieldAutoSize.CENTER;
                        Name.text = TexT;
                        Name.x = cX;
                        Name.y = cY;
                        Name.maxChars = 15;
                        addChild(Name);
                }
 
        }
 
}

Вызываю в основном классе _text.TEXT("test", 100, 200);
текст не видно =( Где на сей раз ошибка

Добавлено через 18 часов 11 минут
Может кто нибудь сделать исходник со встраиванием шрифта для FD и скомпилированным на CS3?
Заранее спасибо =)

tsarapkabel 21.06.2011 16:19

Код AS3:

package {
 
        import flash.display.Sprite;
        import flash.events.Event;
        import flash.events.TimerEvent;
        import flash.text.*;
        import flash.utils.Timer;
 
        public class TextRotation extends Sprite {
 
                [Embed(source = "C:/WINDOWS/Fonts/comic.ttf", fontFamily = "hzFamily", embedAsCFF="false")]
                private var comTxt:String;
                //Для плееров <10 нужно удалить свойство embedAsCFF="false"
 
                private var txtCanvas:Sprite = new Sprite();
 
                public function TextRotation() {
 
                        var txt:TextField = new TextField();
                        txt.embedFonts = true;
                        txt.autoSize = TextFieldAutoSize.LEFT;
                        txt.border = true;
 
                        var txtFmt:TextFormat = new TextFormat(); //Создаём формат для задания шрифта
                        txtFmt.font = "hzFamily";
                        txtFmt.size = 30;
                        txt.defaultTextFormat = txtFmt; //Устанавливаем формат для textField
                        txt.text = "fasdаффвыаsdfasdf";
 
                        txtCanvas.x = txtCanvas.y = 350;
 
                        txtCanvas.addChild (txt);
                        this.addChild(txtCanvas);
 
                        var timer:Timer = new Timer (16);
                        timer.addEventListener (TimerEvent.TIMER, onTimer, false, 0, true);
                        timer.start();
                }
 
                private function onTimer (event:TimerEvent):void {
                        if (txtCanvas.rotation <= 360) txtCanvas.rotation += 1;
                        else txtCanvas.rotation -= 360;
                }
        }
}


GooDMAGE 21.06.2011 17:12

Сколько не изменял все равно не появляется текст =\
вот код:
Код AS3:

package bin.Text 
{
        import flash.display.MovieClip;
        import flash.text.*;
        /**
        * ...
        * @author GooDMAGE
        */

        public class Text extends MovieClip
        {
                [Embed (source = 'visitor.ttf', fontName = 'Visitor', embedAsCFF = 'false')] public var visitor_font:Class;
 
                public function Text()
                {       
                        TEXT("test", 10 , 10);
                }
 
                public function TEXT(TexT:String, cX:int, cY:int):void
                {
                        var Name:TextField = new TextField;
                        Name.embedFonts = true;
                        Name.defaultTextFormat = new TextFormat("Visitor", 15 , 0xFFFFFF);
                        Name.antiAliasType = AntiAliasType.ADVANCED;
                        Name.selectable = false;
                        Name.type = "dynamic";
                        Name.autoSize = TextFieldAutoSize.CENTER;
                        Name.text = TexT;
            Name.x = cX;
                        Name.y = cY;
                        Name.maxChars = 15;
                        addChild(Name);
                }       
        }
 
}

Шрифт лежит в одной папку с классом Text

tsarapkabel 21.06.2011 17:28

Твой код работает.

Код AS3:

package {
 
        import flash.display.MovieClip;
        import flash.text.*;
 
        public class Text extends MovieClip {
 
                [Embed (source = 'visitor.ttf', fontName = 'Visitor', embedAsCFF = 'false')]
                public var visitor_font:Class;
 
                public function Text() {       
                        TEXT("test", 10 , 10);
                }
 
                public function TEXT(TexT:String, cX:int, cY:int):void {
                        var Name:TextField = new TextField(); //сюда добавил скобки
                        Name.embedFonts = true;
                        Name.defaultTextFormat = new TextFormat("Visitor", 15 , 0xFF00FF); //здесь был белый
                        Name.antiAliasType = AntiAliasType.ADVANCED;
                        Name.selectable = false;
                        Name.type = "dynamic";
                        Name.autoSize = TextFieldAutoSize.CENTER;
                        Name.text = TexT;
                        Name.x = cX;
                        Name.y = cY;
                        Name.maxChars = 15;
                        addChild(Name);
                }       
        }
}


GooDMAGE 21.06.2011 17:33

а у меня нет О_О
добавил скобки все равно текст не появился =(

tsarapkabel 21.06.2011 17:35

Если ты прочитал мои комментарии, давай описание ошибки.


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

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