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 に答える