2012-04-13 12 views
0

Ich arbeite an einer Ergebnisseite für mein Spiel sowie Upgrade-Seite und auf der Suche nach einer einfachen Möglichkeit, viele Textfelder zu tun. Ich habe ein Format für meinen Text, das sich um Schriftart, Farbe und Größe kümmert, aber nach einer einfachen Möglichkeit sucht, die Breite und Höhe von Textfeldern gleichzeitig zu erhöhen.AS3 mehrere Textfelder leicht gemacht

Ich wurde über ein "mit" Schlüsselwort informiert, das funktionieren kann, aber nicht verstehe, wie das in meinem Programm implementiert wird und im Wesentlichen meine Ergebnisklasse wenn möglich kürzen möchte.

Danke,

Antwort

0

Soweit ich weiß, Sie nicht verwenden können, ein „mit“ Stichwort mehrere Objekte zu zielen. Hier ist die Dokumentation für sie: http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/statements.html#with

Was ich in der Vergangenheit getan habe gerade eine Reihe von allen Zielen machen ist, und dann in eine Schleife schreiben, um Eigenschaften zu jeder Anwendung:

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; 
    //... 
} 
1

Der beste Weg, wäre es, eine benutzerdefinierte Funktion zum Erzeugen von Textfeldern zu erstellen.

Das Beispiel kann in der livedocs selbst gefunden werden.

So etwas wie das folgende sollte ausreichen:

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; 
    } 

Sie auch einen Standardwert jedes Attribut in der Funktion gesetzt werden.

private function createCustomTextField (x:Number= <Default Value>, ... 

Verwenden Sie diese Option, um ein Textfeld in das Containerformular einzufügen.

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 

Sie möchten die Funktion ändern, um einen Namen zu übernehmen, so dass jede Variable kann später zugegriffen werden.

Verwandte Themen