2014-10-12 2 views
0

Я устанавливаю шрифт на вкладке как 0x999999, но он выходит зеленый/серый.Любая очевидная причина, по которой цвет шрифта не заканчивается тем, что я установил в AS3?

Вот моя тема код:

import flash.text.Font; 
import flash.text.TextFormat; 
import flash.utils.getDefinitionByName; 

public class Theme 
{ 
    [Embed(source = "fonts/Volter__28Goldfish_29.ttf", fontName="Volter (Goldfish)",mimeType="application/x-font", unicodeRange='U+0020-U+007E')] 
    static private var EmbededVolter:Class; 
    static private var inited:Boolean; 
    static public function init():void { 
     if (inited) return; 
     try{ 
      Font.registerFont(getDefinitionByName("Volter") as Class); 
     }catch(e:Error){ 
      Font.registerFont(EmbededVolter); 
     } 
     inited = true; 
    } 
    static public var fontVolterSize:uint = 9; 
    static public var textColor:uint = 0x999999 
    static public var embedFonts:Boolean = false; 
    static public var defaultTextFormat:TextFormat = new TextFormat("Volter (Goldfish)", fontVolterSize, textColor);   
} 

Код для установки на вкладку Свойства:

public function TabTitle(name:String) { 
    this.name = name; 
    this.mouseChildren = false; 
    this.buttonMode = true;  
    bg = new Shape(); 
    bg.alpha = 0; 
    bg.graphics.beginFill(0x2A2A2A); 
    bg.graphics.drawRect(0, 0, 100, 30); 
    bg.graphics.endFill(); 
    addChild(bg); 
    t = new TextField(); 
    t.x = 10; 
    t.autoSize = TextFieldAutoSize.LEFT; 
    t.defaultTextFormat = Theme.defaultTextFormat; 
    t.text = name; 
    t.y = 7; 
    bg.width = t.width + 20; 
    addChild(t); 
    addEventListener(MouseEvent.MOUSE_OVER, handleOver); 
    addEventListener(MouseEvent.MOUSE_OUT, handleOver);   
} 

и разницу в цвете между выше динамическим набором шрифтом (верхний текстом) и тем же шрифтом установлен в 0x999999 в статическом текстовом поле (внизу):

enter image description here

У меня нет прозрачной альфа-настройки на шрифте, но если бы я это сделал, фон был бы серым оттенком в любом случае.

Спасибо, что посмотрели.

ответ

1

Поскольку вы встраивание шрифта, вы должны указать его в TextField:

t.embedFonts = true; 
+0

Благодарности blue112, но установка t.embedFonts = истина; заставляет текст исчезать. – Shaun

+0

Если он исчезает, это значит, что он не был правильно встроен. – blue112