Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Переопределение событий дочерних мувиклипов (http://www.flasher.ru/forum/showthread.php?t=101814)

Vovtis 03.10.2007 17:18

Переопределение событий дочерних мувиклипов
 
Все мы когда то сталкивались с ситуацией когда необходимо отловить событие дочернего мувиклипа. Два дня назавд и я впервые столкнулся с такой же ситуацией. Первым делом я конешно посмотрел FAQ на этом форуме. Да, там был ответ, ссылка на клас написанный многоуважаемым silinом. Долго я изучал этот клас и понял что клас это хорошо но нужно еще и уметь его использовать, а вот это казалось совсем уже сложным для новичка в АС, коим я и являюсь. По этому для других новичков хочу немного упростить метод, что бы было понятнее.
Итак. Имееться два мувиклипа mc1 и mc2. mc2 вложенный в mc1. Задача отловить события onRollOver, onRollOut, onPress мувика mc2. Код вставляем в mc1:

Код:

var IsOver = false; //мышь над мувиклипом или нет.

this.onRollOver = function () {
        trace (this); //или другой код
};

this.mc2.onRollOver = function () {
        trace (this + " onRollOver"); //или другой код
};

this.mc2.onRollOut = function () {
        trace (this + " onRollOut"); //или другой код
};

this.mc2.onPress = function () {
        trace (this + " Pressed"); //или другой код
};

// обрабатываем onMouseMove клипа mc1 и hitTest mc2
// отвечает за события onRollOver и onRollOut
this.onMouseMove = function(){
        if (this.mc2.hitTest(_root._xmouse, _root._ymouse, true)) {
                if (IsOver == false) {
                        this.mc2.onRollOver();
                        IsOver = true;
                };
        } else {
                if (IsOver == true) {
                        this.mc2.onRollOut();
                        IsOver = false;
                };
        };
};

// отвечает за события onPress mc2
this.onMouseUp = function () {
        if (this.mc2.hitTest(_root._xmouse, _root._ymouse, true)) {
                this.mc2.onPress();
        }
};


CorC 04.10.2007 10:41

Это вы для себя написали? :)

Vovtis 04.10.2007 12:56

Для начинающих. Поскольку видел что вопросы по этой теме были. И видел ответы на эти вопросы. Знаю как иногда отвечают (что отвечали а что не отвечали, нет разницы), вот и решил что может кому то и поможет. Ведь так действительно понятнее.

s8000_1 30.10.2007 03:27

Спасибо... А то заколебался искать решение проблемы. После AS3 сложно перестраиваться на AS2 =)

Snut 30.10.2007 11:12

s8000_1,
Цитата:

После AS3 сложно перестраиваться на AS2 =)
Цитата:

Код вставляем в mc1:
судя по этим словам это АС1 :) ну это так... для галочки


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

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