![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Регистрация: Dec 2005
Сообщений: 24
|
Такая вот проблема, может кому не сложно...
Как через цикл задать группе клипов каждому свою функцию (запускающуюся по mouseDown), пробую так: function SongsButtons(songs_scr:Array, max_songs:Number):Void {
for (i=0; i<max_songs; i++) {
set("curent_song"+i, songs_scr[i]);
this["song_title_mc"+i].onMouseDown = function(){
media_holder.unloadMovie();
media_holder.loadMovie(eval("curent_song"+i));
};
}
}
Обычно все тупики стараюсь сам решать, но здесь че-то реально затупил, так, что если кто сталкивался с такой проблемой, буду признателен за помошь! Последний раз редактировалось Sancho.rancho; 31.03.2006 в 05:23. |
|
|||||
|
Banned
Регистрация: Aug 2001
Сообщений: 503
|
Ну и синтаксис... eval, this, set, да ещё и определение типов по AS 2.0 ...
|
|
|||||
|
Регистрация: Mar 2006
Сообщений: 3
|
походу в AS через цикл нельзя управлять обработкой событий,у меня такая же проблема и пришлось на каждый мувиклип отдельный onRollOver вешать.Мож кто по умнее найдётся и подскажет
|
|
|||||
|
Регистрация: Jun 2005
Адрес: Moscow - immigrate from Volgodonsk
Сообщений: 2,534
|
не совсем понял что не получается, но я делаю вот так:
Последний раз редактировалось motor4ik; 31.03.2006 в 12:27. |
|
|||||
|
Регистрация: Jun 2005
Адрес: Moscow - immigrate from Volgodonsk
Сообщений: 2,534
|
хотя по понятным причинам в этом коде только суть, пути к переменным итд нужно прописывать правильно самому!
|
|
|||||
|
Регистрация: Jun 2005
Адрес: Moscow - immigrate from Volgodonsk
Сообщений: 2,534
|
массив не нужно передавать в функцию, т.к. потом функция обработчика события его просто напросто не найдет.
|
|
|||||
|
Регистрация: Nov 2005
Сообщений: 221
|
Если я правильно понимаю, то onMousDown это глобальное событие класса Mouse, на которое подписаны по умолчанию все клипы. В данном случае мы получаем срабатывание всех созданных обработчиков одновременно при клике где угодно. Если нужна для каждого свой обработчик используй onPress или onRelease.
Сейчас у тебя загружаться будет всегда "curent_song"+max_songs. Можно сделать так: |
|
|||||
|
Регистрация: Jun 2005
Адрес: Moscow - immigrate from Volgodonsk
Сообщений: 2,534
|
да кстати...про это тоже .onPress
|
|
|||||
|
Код будет работать не верно, из-за этого участка в коде
Цитата:
Цитата:
При событии мыши метод будет уже виден не внутри цикла "for (i=0; i<max_songs; i++) { ", а из области видимости мувиклипа на котором произошло событие, где переменной i либо не существует, либо есть ее тезка, с неизвесно каким значением. Выход создавать в каждом клипе свойство ID или что-то в этом духе которое и использывать для загрузки мувика. function SongsButtons(songs_scr:Array, max_songs:Number):Void { for (i=0; i<max_songs; i++) { set("curent_song"+i, songs_scr[i]); this["song_title_mc"+i].ID_num = i; this["song_title_mc"+i].onMouseDown = function(){ media_holder.unloadMovie(); media_holder.loadMovie(eval("curent_song"+ID_num)); }; } }
__________________
... |
|
|||||
|
Регистрация: Dec 2005
Сообщений: 24
|
Всем, кто откликнулся - Оогромное спасибо!
При создании переменной songs_scr убрал var (Она у меня в другой функции создавалась) В результате заработал следующий код: |
![]() |
![]() |
Часовой пояс GMT +4, время: 18:48. |
|
|
« Предыдущая тема | Следующая тема » |
|
|