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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 06.06.2008, 18:03
mixery вне форума Посмотреть профиль Отправить личное сообщение для mixery Посетить домашнюю страницу mixery Найти все сообщения от mixery
  № 1  
Ответить с цитированием
mixery

Регистрация: Mar 2008
Сообщений: 40
Отправить сообщение для mixery с помощью ICQ
По умолчанию Как правильно обращаться к пронумерованным копиям клипа?

Привет! В общем такая проблема: есть несколько клипов, которые аттачатся из библиотеки. Нужно чтобы имена шли по порядку, name0, name1, name2 и т.д. Это сделать смог:
Код:
mClip.attachMovie("MC", "name"+i, i, {_x:mClip._xmouse, _y:mClip._ymouse})
i++;
А как узнать свойства name0, name1, name2 и т.д.? Нужны координаты x&y относительно родительского клипа (клипы name+i вложенные), что-то в стиле
Код:
trace (mClip.name+i._x);
Этот код выводит undefinedundefined. Как правильно обращаться к ним??

Старый 06.06.2008, 18:05
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 2  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Код:
mClip["name"+i]._x
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 06.06.2008, 18:22
mixery вне форума Посмотреть профиль Отправить личное сообщение для mixery Посетить домашнюю страницу mixery Найти все сообщения от mixery
  № 3  
Ответить с цитированием
mixery

Регистрация: Mar 2008
Сообщений: 40
Отправить сообщение для mixery с помощью ICQ
Спасибо!

А почему не работает?
Код:
["name" + i].onRollOver = function(){trace ("Hellow, world!")}


Последний раз редактировалось mixery; 06.06.2008 в 19:29.
Старый 06.06.2008, 19:43
Жень Шень вне форума Посмотреть профиль Отправить личное сообщение для Жень Шень Найти все сообщения от Жень Шень
  № 4  
Ответить с цитированием
Жень Шень
 
Аватар для Жень Шень

блогер
Регистрация: Feb 2004
Адрес: Украина
Сообщений: 1,180
Записей в блоге: 3
Отправить сообщение для Жень Шень с помощью ICQ
"Аттачится" клип в mClip. Поэтому надо указывать полный путь.
Но, даже если вы "аттачите" на _root, то надо указать this или _root.
Конструкции ["name" + i].onRollOver не проходит по причине: идентификатор должен начинаться с буквы или _, а у вас с [
Скобки применяются внутри составной конструкции, причем точка ставится только после последней закрывающей скобки.
Допустимый синтаксис: mClip["menu"+i]["myclip"+i*2]._x


Последний раз редактировалось Жень Шень; 06.06.2008 в 19:46.
Старый 06.06.2008, 19:57
mixery вне форума Посмотреть профиль Отправить личное сообщение для mixery Посетить домашнюю страницу mixery Найти все сообщения от mixery
  № 5  
Ответить с цитированием
mixery

Регистрация: Mar 2008
Сообщений: 40
Отправить сообщение для mixery с помощью ICQ
Но тем не менее это не работает:
Код:
_root["name" + i].onRollOver = function(){
	trace("Hellow, world!");
}
Да, а как сделать чтобы вышеописанный код работал для ВСЕХ "name"+i, а не только для одного??

Старый 06.06.2008, 20:03
Ведьмак вне форума Посмотреть профиль Отправить личное сообщение для Ведьмак Посетить домашнюю страницу Ведьмак Найти все сообщения от Ведьмак
  № 6  
Ответить с цитированием
Ведьмак
[+1 22.07.07]
 
Аватар для Ведьмак

Регистрация: May 2007
Адрес: Минск, Беларусь
Сообщений: 347
Отправить сообщение для Ведьмак с помощью ICQ Отправить сообщение для Ведьмак с помощью Yahoo
не работает потому что вы аттачите не в _root, а в mClip... Если mClip в руте, то будет работать
Код:
_root.mClip["name" + i].onRollOver = function(){
	trace("Hellow, world!");}
что значит "для ВСЕХ"? он работает для i-го клипа..

Старый 06.06.2008, 20:22
mixery вне форума Посмотреть профиль Отправить личное сообщение для mixery Посетить домашнюю страницу mixery Найти все сообщения от mixery
  № 7  
Ответить с цитированием
mixery

Регистрация: Mar 2008
Сообщений: 40
Отправить сообщение для mixery с помощью ICQ
Не не, извиняюсь, уже в _root аттач происходит.
Цитата:
он работает для i-го клипа.
Об этом я в курсе. Именно, нужно чтобы работало для name0, name1, name2 и т.д.

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

Регистрация: May 2008
Сообщений: 476
В цикле надо обработчики создавать, в цикле!!!!!
Только тогда для всех клипов работать onRollOver будет.
А еще лучше, в свойcтве prototype класса MovieClip сохранить сей обработчик, тогда он будет для всех мувиклипов вызываться.
__________________
Случайность, господа, это знаете ли непознанная необходимость.

Старый 06.06.2008, 21:08
mixery вне форума Посмотреть профиль Отправить личное сообщение для mixery Посетить домашнюю страницу mixery Найти все сообщения от mixery
  № 9  
Ответить с цитированием
mixery

Регистрация: Mar 2008
Сообщений: 40
Отправить сообщение для mixery с помощью ICQ
Буду рад маленькому примеру по этому поводу но даже если ручками вписать
Код:
_root.name0.onRollOver = function(){
	trace("Hellow, world!");}
то все равно не работает =( хотя клипы в _root присоединяются...

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

Регистрация: May 2008
Сообщений: 476
А name0 у Вас существует на _root?! Нет!

Вы его создали на mClip (см.выше)

так делайте:
Код:
_root.mClip.name0.onRollOver = function()
{
//
}
Это будет работать в том случае если mClip создан на _root.
__________________
Случайность, господа, это знаете ли непознанная необходимость.


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

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

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


 


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


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