我正在为我的游戏的结果页面以及升级页面工作,并寻找一种简单的方法来完成许多文本字段。我有一个文本格式,负责字体,颜色和大小,但寻找一种简单的方法来做文本字段的宽度和高度,以同时增加所有。
我已被告知可能有效的“with”关键字,但不了解如何在我的程序中实现此功能,并且如果可能的话,本质上希望缩短我的结果类。
谢谢,
答案 0 :(得分:1)
最好的方法是创建用于生成文本字段的自定义函数。
该示例可在livedocs本身找到。
所以类似下面这样就足够了:
private function createCustomTextField(x:Number, y:Number, width:Number, height:Number):TextField {
var result:TextField = new TextField();
result.x = x;
result.y = y;
result.width = width;
result.height = height;
return result;
}
您还可以为函数中的每个属性设置默认值。
private function createCustomTextField ( x:Number= <Default Value>, ...
使用它在容器表单中添加文本字段。
var container:Sprite = new Sprite(); // New form container
container.addChild(createCustomTextField (20,20,50,50)); // Text Filed 1
container.addChild(createCustomTextField (20,50,50,50)); // Text Filed 2
addChild(container); // Add to current class
您可能希望修改函数以接受名称,以便稍后可以访问每个变量。
答案 1 :(得分:0)
据我所知,您不能使用“with”关键字来定位多个对象。这是它的文档:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/statements.html#with
我过去所做的只是制作一个包含所有目标的数组,然后编写一个循环来为每个目标应用属性:
var textFormat:TextFormat = generateMyCustomTextFormat();
var textField1:TextField = new TextField();
var textField2:TextField = new TextField();
//...
var textField3:TextField = new TextField();
var targets:Array = [textField1, textField2, textField3];
for(var i:int=0; i<targets.length; i++)
{
targets[i].defaultTextFormat = textFormat;
targets[i].width = 250;
//...
}