Actionscript 3 - 设置字符串中变量的颜色

时间:2011-11-29 11:04:13

标签: flash actionscript-3 actionscript

我对Flash很陌生,我正在努力定义复合String中变量的文本颜色。这是我到目前为止所做的:

// VARIABLES FROM HTML

var var1:Object = LoaderInfo(this.root.loaderInfo).parameters.var_1;
var var2:Object = LoaderInfo(this.root.loaderInfo).parameters.var_2;
var var3:Object = LoaderInfo(this.root.loaderInfo).parameters.var_3;
var var4:Object = LoaderInfo(this.root.loaderInfo).parameters.var_4;

var var5:Object = "HEADLINE NEWS: ";
var5.color = "#a92400";

// COMPOUND STRING

var var6:String = var5 + " " + var1 + " " + var2 + " lorem ipsum dolor sit amet.";

有什么想法吗?到目前为止,我已经尝试了很多东西,但似乎没有任何效果。

1 个答案:

答案 0 :(得分:0)

看起来你要做的就是将颜色设置为文本,但是你想通过使用对象来实现。这是可能的,但正如上面的评论所暗示的那样,TextField就是为TextFormat对象创建的。

通常你会做这样的事情:

private var tf:TextField = new TextField();
private var format:TextFormat = new TextFormat();

private function setFontBoldAndColor():void{
tf.text = "Lorem ipsum";
format.font = "Arial";
format.color = 0xFF0000;  //red
format.bold = true;

tf.setTextFormat(format);
}

如果需要,您可以按如下方式传递一个对象(假设您创建了一个名为lbl的对象并使用了点符号,例如lbl.color = 0xFF0000):

    private function setLabel(lbl:Object):void {

        format.font = "Arial";
        format.color = lbl.color;
        format.bold = true;
        format.size = lbl.size;

        _label = new TextField();
        _label.autoSize = TextFieldAutoSize.LEFT;
                    //a few other TextFormat properties if you want....
        _label.background = false;
        _label.border = false;
        _label.selectable = false;
        _label.alpha = lbl.alpha;
        _label.text = lbl.someText;
        _label.setTextFormat(format);
        addChild(_label);

您需要做的就是确保您创建的对象具有与TextFormat对象的属性相对应的属性。