События MouseEvent

То что касается флеша, но не касается ВКонтакте API. Например проблемы при создании прыгающего мячика.
Alazaur
Разработчик
Разработчик
Сообщения: 1001
Зарегистрирован: 16 окт 2011, 20:25

Re: События MouseEvent

Сообщение Alazaur »

Happy, как-то нелогично Вы поступаете, так грузить программу ради плавного изменения цвета кнопки. На мой взгляд проще сделать мувик с анимацией изменения цвета, повесить stop(); на первый и последний кадры, ну и как-то так:

Код: Выделить всё

myMovieClip.buttonMode = true;myMovieClip.addEventListener(MouseEvent.MOUSE_OVER, changeColor); function changeColor(e:MouseEvent):void {   e.target.gotoAndPlay(2);}
Happy
Сообщения: 20
Зарегистрирован: 19 ноя 2011, 23:14

Re: События MouseEvent

Сообщение Happy »

Но это надо несколько кадров с кнопками разных цветов делать?
Alazaur
Разработчик
Разработчик
Сообщения: 1001
Зарегистрирован: 16 окт 2011, 20:25

Re: События MouseEvent

Сообщение Alazaur »

Первый кадр с синей кнопкой, 5й ключевой с красной и 10й ключевой снова с синей. ПКМ по кадрам - создать анимацию формы. В первом и 5м кадре пишем stop();
Ну и в основном коде:

Код: Выделить всё

myMovieClip.buttonMode = true;myMovieClip.addEventListener(MouseEvent.MOUSE_OVER, changeColor); function changeColor(e:MouseEvent):void {   e.target.gotoAndPlay(2);   myMovieClip.addEventListener(MouseEvent.MOUSE_OUT, firstColor);} function firstColor(e:MouseEvent):void {   myMovieClip.removeEventListener(MouseEvent.MOUSE_OUT, firstColor);   e.target.gotoAndPlay(6);}
Вот в общем-то и все, получили кнопку, плавно меняющую цвет при наведении и так же плавно возвращающуюся в исходное положение при отведении курсора. Минимум кода и затраченного времени две минуты :)
Happy
Сообщения: 20
Зарегистрирован: 19 ноя 2011, 23:14

Re: События MouseEvent

Сообщение Happy »

Кто-нибудь знает как из класса обратиться к основной временной шкале?

Ситуация такая: есть MovieClip, который используется как анимированная кнопка.
Для него написан класс.
Работают события на наведение и снятие курсора (как Alazaur подсказал),
а на клик нужно перейти к другому кадру не клипа, а основной временной шкалы.
Как это сделать? Может перед gotoAndPlay что-нибудь указать нужно?
Alazaur
Разработчик
Разработчик
Сообщения: 1001
Зарегистрирован: 16 окт 2011, 20:25

Re: События MouseEvent

Сообщение Alazaur »

А у вас функция обработки клика то где, не в основном классе программы что ли? :|
Если в основном, то ничего добавлять не надо просто пишите gotoAndPlay();
А если не в основном, то нужно диспатчить событие, которое будет принимать основной класс программы
Аватара пользователя
bodnar
Модератор
Модератор
Сообщения: 1399
Зарегистрирован: 03 апр 2010, 06:41

Re: События MouseEvent

Сообщение bodnar »

Alazaur писал(а):А если не в основном
то надо перенести в основной
ибо это суть и будет
родитель следит за событиями потомков
Alazaur
Разработчик
Разработчик
Сообщения: 1001
Зарегистрирован: 16 окт 2011, 20:25

Re: События MouseEvent

Сообщение Alazaur »

Ну порой в много-модульных программах часто бывает, когда родитель потомка не главный класс всей программы. В этом случае он должен сообщить главному классу, что мол на моего ребенка кликнули, сделайте что-нибудь, но Вы верно сказали "родитель следит за событиями потомков", поэтому только родитель услышав, что ему что-то сказал ребенок, может решить что делать дальше. А ребенок манипулировать родителем не может.
Хотя я видел некоторые кодеры передают дочернему классу ссылку на родителя для управления им :D
Happy
Сообщения: 20
Зарегистрирован: 19 ноя 2011, 23:14

Re: События MouseEvent

Сообщение Happy »

Спасибо всем. Я так же делал, но не получалось. А теперь работает.
Ответить