Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   mc.onPress=... mc.onRollOver=... mc.onEnterFrame=... mc.onKillFocus=... и т.д. (http://www.flasher.ru/forum/showthread.php?t=37063)

TTS 12.09.2002 02:45

mc.onPress=... mc.onRollOver=... mc.onEnterFrame=... mc.onKillFocus=... и т.д.
 
Это не вопрос, это решение проблемы. Если она у кого-нть возникнет. На форуме не нашел, поэтому и пишу.
А возникает проблема тогда, когда из скрипта на мувик пытаемся повесить какой-нибуь обработчик. Допустим, есть три мувика 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

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


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

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