Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 10.10.2004, 16:41
Powerhead13 вне форума Посмотреть профиль Отправить личное сообщение для Powerhead13 Найти все сообщения от Powerhead13
  № 1  
Ответить с цитированием
Powerhead13
 
Аватар для Powerhead13

Регистрация: Aug 2004
Адрес: Киев
Сообщений: 32
Отправить сообщение для Powerhead13 с помощью ICQ
Question Обращение к свойствам объектов

Подскажите, как обратиться к объекту, если его имя окончательно не ясно. К примеру, у меня есть три текстовых поля: textField1 textField2 textField3 и мне нужно обработать их в цикле, к примеру, задать всем свойство text

Два способа я нашёл, но оба мне не нравятся

for (i=1; i<=3; i++)
{
//Первый способ
_root.путь['textField'+i].text = 'TEXT';

//Второй способ
pointer = 'Textfield' + i + '.text';
set(pointer, 'TEXT');

}


Первый способ неудобен тем, что я должен знать путь к объекту. Второй - слишком громоздкий. Нет ли способа по-проще? В php и perl эта операция делается очень просто.

Старый 10.10.2004, 17:39
FreeLander вне форума Посмотреть профиль Отправить личное сообщение для FreeLander Найти все сообщения от FreeLander
  № 2  
Ответить с цитированием
FreeLander
 
Аватар для FreeLander

Регистрация: Jan 2004
Адрес: нигде - не осталось на Земле свободных земель(
Сообщений: 1,176
По умолчанию Re: Обращение к свойствам объектов

Цитата:
Оригинал написал(а) Powerhead13
//Первый способ
_root.путь['textField'+i].text = 'TEXT';
это и есть наилучший способ, можно ещё eval() использовать, но он хуже (если интересно чем именно хуже, то читай здесь )


Цитата:
Оригинал написал(а) Powerhead13
... способ неудобен тем, что я должен знать путь к объекту....
не очень понял... по идее путь нужно знать всегда.
как ты обратишься к объекту, если не знаешь где он?

Старый 10.10.2004, 17:50
Powerhead13 вне форума Посмотреть профиль Отправить личное сообщение для Powerhead13 Найти все сообщения от Powerhead13
  № 3  
Ответить с цитированием
Powerhead13
 
Аватар для Powerhead13

Регистрация: Aug 2004
Адрес: Киев
Сообщений: 32
Отправить сообщение для Powerhead13 с помощью ICQ
Ну смотри, во втором способе я обращаюсь к объекту, не прописывая пути от корня.

Вот обращение к объекту без полного пути: box._x = 26;
В этом случае я оперирую с объектом не зная, на какой глубине он находится от корня.. А если я напишу _root.window.box._x = 26; то если я захочу в будущем поместить этот символ в другой, мне придётся менять путь..

В общем, вопрос в следующем, как обратиться к переменной, имя которой составлено из значений других переменных?

К примеру, нужно изменить переменную abc3 тогда как переменная i = 3.

В php это делается так:

если $i = 3;
${'abc'.$i} = 28;

Эта операция аналогична $abc = 28;

Есть ли что-то подобное в actionscript?

Старый 10.10.2004, 18:11
dekud вне форума Посмотреть профиль Отправить личное сообщение для dekud Найти все сообщения от dekud
  № 4  
Ответить с цитированием
dekud
 
Аватар для dekud

Регистрация: 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

Старый 10.10.2004, 18:11
FreeLander вне форума Посмотреть профиль Отправить личное сообщение для FreeLander Найти все сообщения от FreeLander
  № 5  
Ответить с цитированием
FreeLander
 
Аватар для FreeLander

Регистрация: Jan 2004
Адрес: нигде - не осталось на Земле свободных земель(
Сообщений: 1,176
ты можешь не прописывать путь к объекту, если твой скрипт лежит в том же муве, что и объект.
Во всех остальных случаях прописываешь путь, в котором можешь использовать помимо названия объектов ещё и _parent или _root.

то же самое когда работаешь внутри функции, но ей можно ещё передавать ссылку на объект.

php я не знаю(, потому не очень понял смысл примера.
возможно если ты опишешь конкретную ситуацию, то я смогу тебе подсказать подробнее.

PS предидущий пост не заметил - создались синхронно)


Последний раз редактировалось FreeLander; 10.10.2004 в 18:14.
Старый 11.10.2004, 10:58
Nox Noctis вне форума Посмотреть профиль Отправить личное сообщение для Nox Noctis Посетить домашнюю страницу Nox Noctis Найти все сообщения от Nox Noctis
  № 6  
Ответить с цитированием
Nox Noctis
don't panic!
 
Аватар для Nox Noctis

Регистрация: Aug 2001
Сообщений: 4,121
сейчас я кому-то ухо отгрызу.

http://www.flasher.ru/forum/showthre...threadid=63104

вопрос #3

Старый 11.10.2004, 11:02
FreeLander вне форума Посмотреть профиль Отправить личное сообщение для FreeLander Найти все сообщения от FreeLander
  № 7  
Ответить с цитированием
FreeLander
 
Аватар для FreeLander

Регистрация: Jan 2004
Адрес: нигде - не осталось на Земле свободных земель(
Сообщений: 1,176
Цитата:
Оригинал написал(а) Nox Noctis
сейчас я кому-то ухо отгрызу.
только не мне, ладно)? лысая голова без ушей совсем не смотрится)))

Старый 11.10.2004, 13:00
Powerhead13 вне форума Посмотреть профиль Отправить личное сообщение для Powerhead13 Найти все сообщения от Powerhead13
  № 8  
Ответить с цитированием
Powerhead13
 
Аватар для Powerhead13

Регистрация: Aug 2004
Адрес: Киев
Сообщений: 32
Отправить сообщение для Powerhead13 с помощью ICQ
Вери биг сенкс, this спас отца русской демократии.
Но, если кто знает, хотелось бы всё-таки узнать, как обратиться к переменной, имя которой содержится в другой переменной. Короче говоря, есть ли способ, сделать проще вот эту операцию, одним выражением:

a = 'myVar';
set(a, 'Value');

// Теперь myVar = 'Value'

Кстати, в моём посте про php ошибка, правильно
Цитата:
Эта операция аналогична $abc3 = 28;
Отредактировать свой пост после 10 минут, по каким-то соображениям, простым смертным низя =))

Старый 11.10.2004, 13:08
Nox Noctis вне форума Посмотреть профиль Отправить личное сообщение для Nox Noctis Посетить домашнюю страницу Nox Noctis Найти все сообщения от Nox Noctis
  № 9  
Ответить с цитированием
Nox Noctis
don't panic!
 
Аватар для Nox Noctis

Регистрация: Aug 2001
Сообщений: 4,121
общий вид:

this[любое_выражение_которое_даёт_в_результате_строку]

т.е. внутри скобочек никто не мешает поставить переменную, содержащую строку

Старый 11.10.2004, 13:40
Powerhead13 вне форума Посмотреть профиль Отправить личное сообщение для Powerhead13 Найти все сообщения от Powerhead13
  № 10  
Ответить с цитированием
Powerhead13
 
Аватар для Powerhead13

Регистрация: Aug 2004
Адрес: Киев
Сообщений: 32
Отправить сообщение для Powerhead13 с помощью ICQ
Спасиб.

Создать новую тему Ответ Часовой пояс GMT +4, время: 11:07.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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