Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Вывод одинаковых элементов (http://www.flasher.ru/forum/showthread.php?t=136669)

alexorg2 23.02.2010 04:12

Вывод одинаковых элементов
 
Я не нашел на форуме раздела для новоиспеченных новичков, поэтому пишу сюда:away:

Боюсь что мой вопрос многих гуру ActionScript повергнет в дикий хохот, но... хочу спросить как вывести два ОДИНАКОВЫХ текстовых поля на экран, но которые отличаются только положением?

Сейчас я делаю это примерно так:
Код AS3:

var textList1:TextField = new TextField();
textList1.text = "некий текст";
textList1.autoSize = TextFieldAutoSize.LEFT;
textList1.y = 20;
mainStartBlock.addChild(textList1);
 
 
var textList2:TextField = new TextField();
textList2.text = "некий текст";
textList2.autoSize = TextFieldAutoSize.LEFT;
textList2.y = 40;
mainStartBlock.addChild(textList2);

т.е. создаю два объекта TextField, проделываю кучу одинаковых операций с единой разницей в координате y.
Я боюсь себе даже представить насколько увеличится код, если вдруг мне понадобится вывести аж 50 таких элементов в разных координатах.

Gaen 23.02.2010 04:46

Вы все правильно делаете.
Если захотите сделать 50 таких полей - цикл в помощь

Код AS3:

var txt:TextField
 
for(var i:int = 0; i < 50; i++){
  txt = new TextField();
  txt.text = "некий текст";  //txt.text = texts[i]
  txt.autoSize = TextFieldAutoSize.LEFT;
  txt.y = i * 20//txt.y = coords[i]
  mainStartBlock.addChild(txt);
}//for


kackbip 23.02.2010 05:51

Ну или написать функцию
Код AS3:

function putField(text:String, x:Number, y:Number, container:DisplayObjectContainer):void{
  var txt:TextField = new TextField();
  txt.text = text;
  txt.autoSize = TextFieldAutoSize.LEFT;
  txt.y = y;
  txt.x = x;
  container.addChild(txt);
}


nOobCrafter 23.02.2010 12:03

Код AS3:

function makeATF(t:String, color:uint = 0xFFFFFF, size:int = 12, auto:String = 'left', select:Boolean = false):TextField
                {
                        var FTM:TextFormat = new TextFormat();
                                FTM.font = "Arial";// "Trebuchet MS";
                                FTM.color = color;
                                FTM.size = size;
                                FTM.bold = true;
 
                        var tf:TextField = new TextField();
                                tf.autoSize = auto;
                                tf.selectable = select;
                                tf.embedFonts = true;
                                tf.defaultTextFormat = FTM;
                                tf.text = t;
                        return tf;
                }

имхо так лучше, только надо экспортнут если чего то хватать небудет.


Часовой пояс GMT +4, время: 16:16.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.