0

我正在为我的游戏制作结果页面以及升级页面,并寻找一种简单的方法来处理许多文本字段。我有一种处理字体、颜色和大小的文本格式,但正在寻找一种简单的方法来同时增加文本字段的宽度和高度。

我被告知一个“with”关键字可能有效,但不明白如何在我的程序中实现它,并且基本上希望尽可能缩短我的结果类。

谢谢,

4

2 回答 2

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

您可能希望修改函数以接受名称,以便以后可以访问每个变量。

于 2012-04-14T09:25:52.987 回答
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;
    //...
}
于 2012-04-13T19:23:19.093 回答