我正在为我的游戏制作结果页面以及升级页面,并寻找一种简单的方法来处理许多文本字段。我有一种处理字体、颜色和大小的文本格式,但正在寻找一种简单的方法来同时增加文本字段的宽度和高度。
我被告知一个“with”关键字可能有效,但不明白如何在我的程序中实现它,并且基本上希望尽可能缩短我的结果类。
谢谢,
我正在为我的游戏制作结果页面以及升级页面,并寻找一种简单的方法来处理许多文本字段。我有一种处理字体、颜色和大小的文本格式,但正在寻找一种简单的方法来同时增加文本字段的宽度和高度。
我被告知一个“with”关键字可能有效,但不明白如何在我的程序中实现它,并且基本上希望尽可能缩短我的结果类。
谢谢,
最好的方法是创建一个自定义函数来生成文本字段。
该示例可以在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
您可能希望修改函数以接受名称,以便以后可以访问每个变量。
据我所知,您不能使用“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;
//...
}