Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Вращение текста (http://www.flasher.ru/forum/showthread.php?t=143025)

greenhill 05.08.2010 13:42

Вращение текста
 
Здравствуйте
Как вращать динамическое текстовое поле, помещенное в спрайт?
При вращении оно пропадает:confused:

incvizitor 05.08.2010 13:58

внедрить шрифты, или прорисовать поле в битмапдате, а может и cacheAsBitmap поможет.

greenhill 05.08.2010 13:58

А каким образом?
Я использую стандартные

incvizitor 05.08.2010 14:03

открываете файл ".fla" немного ниже сцены кладёте динамическое поле, и в него внедряете нужный Вам font.

текстовому полю которое будете крутить пропишете

Код AS3:

embedFonts=true;

И всё, счастье. Только вот вес приложения подыметься...

greenhill 05.08.2010 14:12

а если мне надо программно менять шрифты, надо просто создать столько текстовых полей, сколько разновидностей шрифтов?

incvizitor 05.08.2010 14:21

да. и к тому же приложение будет достаточно емким....

кстати можно эмбэдить и так:

[Embed(source="Lol.ttf", fontFamily="Lol")]

greenhill 05.08.2010 14:24

а где это прописывается?
(простите за кучу вопросов)

incvizitor 05.08.2010 14:30

в Вашем документ классе перед конструктором. Обычно создаёться внешняя флешка, которая эмбэндит фришты. Эту флешку мы грузи вместе с остальным контентом, что позволяет визуально отобразить процесс загрузки шрифтов.

greenhill 05.08.2010 14:31

спасибо большое!

udaaff 05.08.2010 14:35

greenhill, зависит от того, в чем ты проект пишешь. Во флеше шрифты внедряются через настройки текстового поля.

greenhill 05.08.2010 14:37

во флеше
но текстовое поле создается динамически

gloomyBrain 05.08.2010 15:11

Цитата:

а если мне надо программно менять шрифты, надо просто создать столько текстовых полей, сколько разновидностей шрифтов?
Цитата:

во флеше
но текстовое поле создается динамически
Для задания текстовому полю шрифта существует класс TextFormat и метод текстового поля setTextFormat

greenhill 05.08.2010 15:14

да, я знаю, у меня так и задается, только при вращении, тест все равно пропадает

TWETTI 05.08.2010 15:26

Код AS3:

package 
{
        import flash.display.Sprite;
        import flash.text.TextField;
        import flash.text.TextFormat;
 
        public class Main extends Sprite
        {
                [Embed(source="C:\\Windows\\Fonts\\CENTURY.TTF", fontName="MyFont")]
                private var fontName:String;
 
                public function Main():void
                {
                        var tf:TextFormat = new TextFormat();
                        tf.font = "MyFont";
 
                        var t:TextField = new TextField();
                        t.text = "Hello";
                        t.embedFonts = true;
                        t.setTextFormat(tf);
                        addChild(t);
 
                        t.rotation += 45;
                }
 
        }
 
}


PgeorgyV 05.08.2010 15:30

При использовании подхода с BitmapData можно как то увеличить качество отображения повернутого шрифта?
Код AS3:

                        var tf:TextField = new TextField();
                        tf.autoSize = TextFieldAutoSize.LEFT;
                        tf.defaultTextFormat = new TextFormat('Arial', 16, 0, true);
                        tf.text = 'TextField';
                        tf.x = tf.y = 80;
                        addChild(tf);
 
                        tf = new TextField();
                        tf.defaultTextFormat = new TextFormat('Arial', 16, 0, true);
                        tf.autoSize = TextFieldAutoSize.LEFT;
                        tf.text = 'TextField';
 
                        var bd:BitmapData = new BitmapData(tf.width, tf.height, true, 0x00ffffff);
                        bd.draw(tf);
 
                        var b:Bitmap = new Bitmap(bd);
                        b.x = b.y = 60;
                        addChild(b);
 
                        b = new Bitmap(bd);
                        b.x = b.y = 60;
                        b.rotation = -45;
                        addChild(b);


greenhill 05.08.2010 15:44

Код AS3:

[Embed(source = "fonts/times.ttf", fontName = "Times New Roman")];
        [Embed(source = "fonts/arial.ttf", fontName = "Arial")];
        [Embed(source = "fonts/tahoma.ttf", fontName = "Tahoma")];
 
                private var fontName:String;

ругается- Embed is only supported on classes and member variables.

PgeorgyV 05.08.2010 15:55

Код AS3:

[Embed(source = 'c:/windows/fonts/trebuc.ttf', embedAsCFF = 'false', fontFamily = 'Trebuchet MS')]
private var Trebuc:Class;
 
[Embed(source = 'c:/windows/fonts/tahoma.ttf', embedAsCFF = 'false', fontFamily = 'Tahoma')]
private var Tahoma:Class;


udaaff 05.08.2010 15:56

TWETTI, PgeorgyV, человек во флеше проект делает.
greenhill, читай про внедрение шрифтов во флеш иде.

greenhill 05.08.2010 15:58

udaaff, может есть линк? плиииз

udaaff 05.08.2010 16:00

http://www.flasher.ru/forum/showthread.php?t=93152
В CS5 немного по другому.

greenhill 05.08.2010 16:50

спасибо большое, udaaff !

Добавлено через 20 часов 3 минуты
А почему может не выводиться Кириллица?


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

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