![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Регистрация: Jul 2005
Сообщений: 13
|
Добрый день
Подскажите пожалуйста как определить по какому MovieClip кликнули. Я динамически загружаю фотографии в фильм так: for (i=1; i<=kol; i++) { _root.createEmptyMovieClip("images_" + i + "", i); loadMovie("./portfolio/" + path + "/" + i + ".jpg", "images_" + i + ""); } А потом хочу реализовать возможность, чтобы каждая фотография открывалась в новом окне при нажатии мыши, так: images_2.onRelease = function() { getURL("javascript:void window.open('/portfolio/" + path + "/2.jpg', '1', 'width=187,height=290,directories=no,location=no,menubar=no,resizable=no,scrollbars=no,status=no,toolbar=no');"); }; Но так будет работать при условии, что я в ручную задаю имя images_2, а как сделать чтобы в динамике отслеживалось по какой из фотографии (MovieClip) кликнули? За ранее благодарен |
|
|||||
|
Регистрация: Apr 2001
Адрес: Kiev-Simferopol
Сообщений: 133
|
Кажется, вот так должно работать.
Ты просто циклом делаешь клипы - и на каждый, не отходя от кассы, вешаешь свой экшен. Но, заметь, это просто пример кода - в реальной разработке надо все эти созданные клипы еще как-то размещать на опредеденном расстоянии друг от друга, но нет никакой информации о том, как они будут выкладываться. for (i=1; i<=kol; i++){
var clip:MovieClip = _root.createEmptyMovieClip("images_" + i + "", i);
clip.loadMovie("./portfolio/" + path + "/" + i + ".jpg", "images_" + i + "");
var clip.id:Number = i;
clip.onRelease = function(){
getURL("javascript:void window.open('/portfolio/" + path + "/"+this.id+".jpg', '1', 'width=187,height=290,directories=no,location=no,m enubar=no,resizable=no,scrollbars=no,status=no,toolbar=no');");
}
}
__________________
Понять - значит упростить. Хорошо понять - сделать самому. Последний раз редактировалось DeadMorozz; 17.08.2005 в 12:56. |
|
|||||
|
Регистрация: Jul 2005
Сообщений: 13
|
К сожелению так не работает, т.к. в первом кадре код загружает изображения, потом идет предзагрузчик, пока он их загружает и вообще не видет обработчика onRelease внутри цикла for.
Тут должен быть другой подход, но какой? |
|
|||||
|
Регистрация: Apr 2001
Адрес: Kiev-Simferopol
Сообщений: 133
|
serf
код работает. просто в нем нет смешения мувиклипа с каждой последующей загруженной фоткой. Лечится просто: если размер фоток известен, то надо каждому новому клипу давать _x+clipWidth+spacer.
__________________
Понять - значит упростить. Хорошо понять - сделать самому. Последний раз редактировалось DeadMorozz; 17.08.2005 в 14:22. |
|
|||||
|
Регистрация: Jul 2005
Сообщений: 13
|
Не получается
Вот этот код в первом кадре: for (i=1; i<=kol; i++) { _root.createEmptyMovieClip("images_" + i + "", i); loadMovie("./portfolio/" + path + "/" + i + ".jpg", "images_" + i + ""); eval("images_" + i)._alpha = 0; } А вот этот код в 5-ом кадре и на 5-ом кадре мы остановились: // Который не доделанный images_2.onRelease = function() { name = "2.jpg"; getURL("javascript:void window.open('bigphoto.php?path=" + path + "&name=" + name + "', '1', 'width=187,height=290,directories=no,location=no,menubar=no,resizable=no,scrollbars=no,status=no,toolbar=no');"); }; В остальных кадрах код привязан к images_[i], может возможно как-то прикрутить onRelease к примеру к массиву, что-то типа array.onRelease = {} И дело в том что мне нужно будет определить какой именно был нажат мувик, т.к. нужо будет определить имя фотографии и ее размер. |
|
|||||
|
Регистрация: Apr 2001
Адрес: Kiev-Simferopol
Сообщений: 133
|
Вот так можно передавать клип в переменную, например
![]()
__________________
Понять - значит упростить. Хорошо понять - сделать самому. |
|
|||||
|
Регистрация: Dec 2002
Адрес: Сочи
Сообщений: 2,819
|
eval("images_"+i).i = i;
|
|
|||||
|
Регистрация: Apr 2001
Адрес: Kiev-Simferopol
Сообщений: 133
|
В данном случае i получается равна последнему номеру фотографии + 1 и соответственно загружается только последняя фотография в новое окно.
До сих пор не понимаю, в чем рульность разноса всей этой колбасы по кадрам, но проблема с последним i, в принципе, довольно стара. Дело в том, что когда создаешь несколько клипов с экшенами по ним при проходе циклом, значение i в каждом из них равняется kol. Борется эта бочина раздачей каждому клипу значения i в локальную переменную id. Присмотрись к моему старому коду: for (i=1; i<=kol; i++){
var clip:MovieClip = _root.createEmptyMovieClip("images_" + i + "", i);
clip.loadMovie("./portfolio/" + path + "/" + i + ".jpg", "images_" + i + "");
var clip.id:Number = i;
clip.onRelease = function(){
getURL("javascript:void window.open('/portfolio/" + path + "/"+this.id+".jpg', '1', 'width=187,height=290,directories=no,location=no,m enubar=no,resizable=no,scrollbars=no,status=no,too lbar=no');");
}
}
__________________
Понять - значит упростить. Хорошо понять - сделать самому. |
![]() |
![]() |
Часовой пояс GMT +4, время: 17:25. |
|
|
« Предыдущая тема | Следующая тема » |
|
|