PDA

Просмотр полной версии : mc.onPress=... mc.onRollOver=... mc.onEnterFrame=... mc.onKillFocus=... и т.д.


TTS
12.09.2002, 02:45
Это не вопрос, это решение проблемы. Если она у кого-нть возникнет. На форуме не нашел, поэтому и пишу.
А возникает проблема тогда, когда из скрипта на мувик пытаемся повесить какой-нибуь обработчик. Допустим, есть три мувика mc1, mc2 и mc3. Хотим, чтобы при нажатии на какой-либо из них выводился его номер. Пишем:

for(i=1;i<4;i++)
eval("mc" add i).onPress=function(){trace(i);};
stop();

Кликаем на мувики. Результат один - 4. Что и следовало ожидать - это значение переменной i после окончания цикла.
А нужно совсем другое. Делаем "раз":

function setonpress(clip,n){
clip.onPress=function(){trace(n);}
}

Делаем "два":

for(i=1;i<4;i++)
setonpress(eval("mc" add i),i);
stop();

И всё прекрасно работает. Как видите, вместо локальной переменной флэш берет её значение, а не ссылку на неё, как в первом случае.

Я закончил. Спасибо за внимание.

ЛОWАДКА
12.09.2002, 03:57
и зачем так надо было делать? вот мотрю, глаза слипаются, но все равно понимаю, что-что-то тут не то! Завтра посмотрю

TTS
12.09.2002, 17:46
Они у тебя ещё и красные. (Глаза)

RDA
12.09.2002, 18:32
Во-первых забудь про eval в левой части!!!!!!!
А во-вторых нафига так извращаться???????

.onRelease = function() {
trace(this._name.substr(2));
}

JeeP
12.09.2002, 19:09
2RDA

TTS
13.09.2002, 06:25
Я же принцип объясняю. Чтоб понятно было. Ведь в названии клипа может и не быть его номера. Я эту задачу для примера привел. Не надо привязываться к конкретным вещам.