Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Глючит TextFormat (http://www.flasher.ru/forum/showthread.php?t=123565)

Buble 04.04.2009 21:07

Глючит TextFormat
 
Есть простенький класс, с переменной TextField
почему-то когда вызывается scores += 10; то формат текста сбрасывается
в системный шрифт. А если установить embedFonts то не отображается вобще. :eek:

Код AS3:

package game 
{
        import flash.display.Sprite;
        import flash.text.TextField;
        import flash.text.TextFormat;
        public class ScoreManager
        {
                private var hiScores:int;
                public var scoreText:TextField;
                public var format:TextFormat;
                private const GREEN_COLOR = 0x42A516;
 
                public function ScoreManager(container:Sprite)
                {
                        hiScores = 0;
                        scoreText = new TextField();       
                        scoreText.text = "Scores: 0";
                        scoreText.selectable = false;
                        //scoreText.embedFonts = true;
                        format = new TextFormat();
                        format = scoreText.getTextFormat();
                        format.font = "Poplar Std";
                        format.color = GREEN_COLOR;
                        format.size = 16;
                        scoreText.setTextFormat(format);
                        container.addChild(scoreText);
                }
                public function get scores():int
                {
                        return hiScores;
                }
                public function set scores(value:int):void
                {
                        hiScores = value;
                        trace(scoreText.text);
                        scoreText.text = "Scores: " + String(hiScores);
                }
        }
}


BlooDHounD 04.04.2009 21:15

defautTextFormat

Buble 04.04.2009 21:50

А я было подумал что объект TextFormat создается где-то не там, спасибо.

willis83 04.04.2009 21:59

У меян тоже проблема! Я тут уже все темы перерыл и никак не могу найти того, что нужно. Пишу в CS4, проблема у меня с русским шрифтом.Русский шрифт получаю через xml и вывожу в текстфилде, но вылазят каракули. Я сначала подумал что шрифт не поддерживает(использую не встроенный), но когда протрейсил понял что дело не только в шрифте, т.к. трэйс тоже каракули выдал. Для начала решил встроить шрифт, облазил тут пол форума, перечитал кучу тем, Но так и не понял как в CS4 встраивать шрифты, при том, что все текстфилды у меня динамические. Вот iNils писал:
Цитата:

Шрифты заменяются только если у вас динамическое поле, чтобы это не происходило надо внедрить шрифты в swf. Для этого надо выбрать текстовое и в панели его свойств нажать кнопку Embed, после чего указать необходимый диапазон символов (можно необходимые символы вбить вручную). Например Cyrillic (не выбирайте All, так как будут внедрены все символы шрифта, а это могут мегабайты лишнего веса)
Во первых текстовых полей у меня нет, всё программно, но это не беда, создал левое поле и пол часа там искал эту ""кнопу Embed"... но нет её там! Ладно, пошел другим путём, несмотря на то что все кричат что шрифт в библиотеке это зло, я его туда добавил, но если в коде указываешь
Код AS3:

mytext.embedFonts = true;

текст всё равно не видно... честно говоря мне уже всё равно будет он встроенный или не будет, просто нужные русские символы.... помогите, а то уже не знаю что делать...

BlooDHounD 04.04.2009 22:13

utf-8

willis83 04.04.2009 22:18

А можно чуть-чуть по конкретней? Поиск по AS3 ничего не выдаёт на это

duhowka 04.04.2009 22:34

Цитата:

Сообщение от BlooDHounD (Сообщение 810860)
utf-8

Наверно он имеет ввиду смену кодировки у русского текста на utf-8

willis83 04.04.2009 22:50

Угу, нашел я его же советы по данному вопросу и состряпал такую функцию
Код AS3:

function Encoding(sometext:String):String {
                        var ba:ByteArray = ByteArray(sometext);
                        var utfData:String = String(ba.readMultiByte(ba.bytesAvailable, "utf8"));
                        return utfData
};

Теперь все поля и атрибуты xml которые потенциально могут содержать русский шрифт придётся прогонять через эту функцию. Проще нет решений?

Buble 04.04.2009 22:53

Если trace выводит коракули, может надо сам xml-файл сделать в utf-8?

willis83 04.04.2009 23:00

Теперь выдаёт ошибку :
Цитата:

TypeError: Error #1034: Ошибка типа Coercion: невозможно преобразовать "bla-bla-blakjhjhfgkjkâñå ìîäåìû ãåè" в flash.utils.ByteArray.
Buble, xml мне отдаёт php скрипт, если подскажешь что надо написать в скрипте или в выводимом xml буду очень благодарен


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

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