我对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.";
有什么想法吗?到目前为止,我已经尝试了很多东西,但似乎没有任何效果。
答案 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对象的属性相对应的属性。