|
|
|||||
Обращение к свойствам объектов
Подскажите, как обратиться к объекту, если его имя окончательно не ясно. К примеру, у меня есть три текстовых поля: textField1 textField2 textField3 и мне нужно обработать их в цикле, к примеру, задать всем свойство text
Два способа я нашёл, но оба мне не нравятся for (i=1; i<=3; i++) { //Первый способ _root.путь['textField'+i].text = 'TEXT'; //Второй способ pointer = 'Textfield' + i + '.text'; set(pointer, 'TEXT'); } Первый способ неудобен тем, что я должен знать путь к объекту. Второй - слишком громоздкий. Нет ли способа по-проще? В php и perl эта операция делается очень просто. |
|
|||||
Регистрация: Jan 2004
Адрес: нигде - не осталось на Земле свободных земель(
Сообщений: 1,176
|
Re: Обращение к свойствам объектов
Цитата:
Цитата:
как ты обратишься к объекту, если не знаешь где он? |
|
|||||
Ну смотри, во втором способе я обращаюсь к объекту, не прописывая пути от корня.
Вот обращение к объекту без полного пути: box._x = 26; В этом случае я оперирую с объектом не зная, на какой глубине он находится от корня.. А если я напишу _root.window.box._x = 26; то если я захочу в будущем поместить этот символ в другой, мне придётся менять путь.. В общем, вопрос в следующем, как обратиться к переменной, имя которой составлено из значений других переменных? К примеру, нужно изменить переменную abc3 тогда как переменная i = 3. В php это делается так: если $i = 3; ${'abc'.$i} = 28; Эта операция аналогична $abc = 28; Есть ли что-то подобное в actionscript? |
|
|||||
Регистрация: May 2003
Адрес: Питер - город на Неве
Сообщений: 69
|
а прос такое слова как this не ужели не слышал?
i =5; this["box"+i]._x = 10; аналог box5._x = 10; а если вдруг box5 у тебя находится в мувике boxGroup то мона: i = 5; boxGroup["box"+i]._x = 10; а если у тебя вдруг несколько boxGroup1 ... n то обратится можно так: j = 2; i = 5; this["boxGroup"+j]["box"+i]._x = 10; ---------- А путь тебе знать надо всегда, правда пути разные бывают бывают прмые: _root.mc1.mc2.mc3; а бывают относительные и если мы находимся в mc2 то к mc3 мы можем обратится mc3._x = 5; или this.mc3._x = 5 аналог при прямом пути: _root.mc1.mc2.mc3._x = 5; а к mc1 мы можем обратится как _prent._y = 10; или прямо _root.mc1._y = 10 |
|
|||||
Регистрация: Jan 2004
Адрес: нигде - не осталось на Земле свободных земель(
Сообщений: 1,176
|
ты можешь не прописывать путь к объекту, если твой скрипт лежит в том же муве, что и объект.
Во всех остальных случаях прописываешь путь, в котором можешь использовать помимо названия объектов ещё и _parent или _root. то же самое когда работаешь внутри функции, но ей можно ещё передавать ссылку на объект. php я не знаю(, потому не очень понял смысл примера. возможно если ты опишешь конкретную ситуацию, то я смогу тебе подсказать подробнее. PS предидущий пост не заметил - создались синхронно) Последний раз редактировалось FreeLander; 10.10.2004 в 18:14. |
|
|||||
don't panic!
Регистрация: Aug 2001
Сообщений: 4,121
|
|
|
|||||
Регистрация: Jan 2004
Адрес: нигде - не осталось на Земле свободных земель(
Сообщений: 1,176
|
Цитата:
|
|
|||||
Вери биг сенкс, this спас отца русской демократии.
Но, если кто знает, хотелось бы всё-таки узнать, как обратиться к переменной, имя которой содержится в другой переменной. Короче говоря, есть ли способ, сделать проще вот эту операцию, одним выражением: a = 'myVar'; set(a, 'Value'); // Теперь myVar = 'Value' Кстати, в моём посте про php ошибка, правильно Цитата:
|
|
|||||
don't panic!
Регистрация: Aug 2001
Сообщений: 4,121
|
общий вид:
this[любое_выражение_которое_даёт_в_результате_строку] т.е. внутри скобочек никто не мешает поставить переменную, содержащую строку |
|
|||||
Спасиб.
|
Часовой пояс GMT +4, время: 06:53. |
|
« Предыдущая тема | Следующая тема » |
|
|