ゲームの結果ページとアップグレード ページに取り組んでおり、多くのテキスト フィールドを簡単に作成する方法を探しています。フォント、色、サイズを処理するテキストのフォーマットがありますが、テキストフィールドの幅と高さを同時に大きくする簡単な方法を探しています。
「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;
//...
}