Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Как обратиться к текстовому полю по имени в цикле? (http://www.flasher.ru/forum/showthread.php?t=175802)

brodotsky 24.02.2012 15:10

Как обратиться к текстовому полю по имени в цикле?
 
Я программно создаю 3 текстовых поля:
Код AS1/AS2:

_root.createTextField("Text_1",1,30,0,30,30);
_root.createTextField("Text_2",2,60,0,30,30);
_root.createTextField("Text_3",3,90,0,30,30);

Теперь нужно задать свойства .text для всех трёх полей.
В Text_1 должно быть "1", в Text_2 - "2", в Text_3 - "3".

Можно написать так:
Код AS1/AS2:

Text_1.text=1;
Text_2.text=2;
Text_3.text=3;

Но хотелось бы написать что-то подобное:
Код AS1/AS2:

for (I=1;I<=3;I++)
  {Str="Text"+I;
  Str.text=I;}

Но конструкция Str.text=I не работает.

Что здесь можно придумать?
Как обратиться к текстовому полю по имени, заданному в строковой переменной?

MikroAcse 24.02.2012 15:40

Код AS1/AS2:

for (I=1;I<=3;I++)
{
Str=this["Text"+I];
Str.text=I;
}

Я так когда-то делал :)

Tails 24.02.2012 16:08

Код AS1/AS2:

for (var i=1; i<=10; i++){
        depth                = i;
        tX                = 100;
        tY                = i*30;
        tf                = this.createTextField("my_txt"+i, depth, tX, tY, 300, 100);
        tf.text        = 'This is my first test field object text.';
}


brodotsky 24.02.2012 17:48

MikroAcse, спасибо, работает.
Да здравствует this!

А я раньше думал, слово "this" придумали, чтобы язык ломать.

Добавлено через 5 минут
Tails, такая конструкция:
Код AS1/AS2:

tf = this.createTextField(...);
tf.text=''...'';

у меня во Flash MX (AS1) не работает.
trace (tf) возвращает undefined.

dark256 25.02.2012 13:02

Ставьте CS3 и переходите на АС2.


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

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