PDA

Просмотр полной версии : Как присвоить одинаковые функции куче клипов


Olesolo
05.05.2007, 18:31
Добрый день, всем.

Подскажите как присвоить одинаковые функции к уже имеющимся на сцене разным мувиклипам?

Подробнее:
У меня на сцене 200 мувиклипов с именами mc1, mc2,...,mc200
как сделать так, чтобы на них всех повесить один onRollOver, но чтобы менялась только переменная с именем клипа...


this[mc_name].onRollOver = function() {
...
}

Fernando Costa
05.05.2007, 18:57
for(i=0;i<200;i++){
_root['mc'+i].onRollOver = function(){
....

}


}

Olesolo
05.05.2007, 19:49
не присваивает. присваивает последню переменную... т.е. при наведении на любой мувиклип RollOver отображает для 200.

etc
05.05.2007, 19:56
Ищите на форуме ответы, это обсуждалось пару миллионов раз.

Fernando Costa
05.05.2007, 20:01
ошибся

for(i=0;i<200;i++)
_root['mc'+i].onRollOver = somefunction;

function somefunction(){

}

Olesolo
05.05.2007, 20:03
я пробывал, но не могу толком сформулировать параметры для поиска... :\

etc
05.05.2007, 20:13
http://flasher.ru/forum/showthread.php?t=94699&highlight=item.i

Kikasso
05.05.2007, 20:19
Можно тупо от имени оттолкнуться:
for(i=0;i<200;i++)
_root['mc'+i].onRollOver = somefunction;

function somefunction(){
trace( Number (this._name.substring(2) ) );
}

Olesolo
05.05.2007, 20:43
for (var i:Number = 0; i<200; i++) {
mс["c"+i+"_m"].onRollOver = function () {
mс["c"+i+"_m"].gotoAndStop(2);
};
}

вот у меня такой код.
после его работы, RollOver работает для всех клипов, но отображает для mc.c200_m

посмотрел ссылку, попробывал вот так:

for (var i:Number = 0; i<200; i++) {
var item = mс["c"+i+"_m"];
item.i = i;
item.onRollOver = function () {
item.gotoAndStop(2);
};
}

Тоже самое :\

etc
05.05.2007, 21:11
Вместо item внутри onRollOver надо писать this.

Olesolo
05.05.2007, 21:48
получилось!
спасибо огромное :)
уже не первый раз спасаете!