|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Nov 2004
Адрес: Кстово
Сообщений: 54
|
Прослушивание события со сцены из класса.
Суть задачи - есть класс (расширение мувиклипа). В этом классе нужно чтобы событие наведения мыши передавалось в основной ролик с параметрами. То есть к примеру при наведении на область появлялось меню - "такая то область выделена с такими то параметрами" (передается из объекта только описание а в основном мувике разборка идет через case) Весь мозг уже изломал. Не хочется писать кривой код, ибо знаю что это можно написать в одном месте. На данный момент имеется
import flash.display.MovieClip; import flash.events.MouseEvent; import com.greensock.*; import com.greensock.easing.*; import com.greensock.plugins.*; public class Oblast extends MovieClip { var regionNum:int; var index:int; public function Oblast() { this.red_mc.alpha = 0; regionNum = int(this.name.substring(4,6)); this.addEventListener(MouseEvent.MOUSE_OVER, mOver); this.addEventListener(MouseEvent.MOUSE_OUT, mUp); this.addEventListener(MouseEvent.CLICK, mClick); this.buttonMode = true; this.useHandCursor = true; } public function mOver(e:MouseEvent):void { regionUp(); } public function mUp(e:MouseEvent):void { regionDown(); } public function mClick(e:MouseEvent):void { } public function regionUp() { this.parent.setChildIndex(this,this.parent.numChildren-2); TweenLite.to(this, 0.5, {scaleX:1.1, scaleY:1.1, ease:Quad.easeOut}); TweenLite.to(this.red_mc, 0.5, {alpha:1, ease:Quad.easeOut}); } public function regionDown() { TweenLite.to(this, 0.5, {scaleX:1, scaleY:1, ease:Quad.easeOut}); TweenLite.to(this.red_mc, 0.5, {alpha:0, ease:Quad.easeOut}); } } |
|
|||||
Регистрация: Nov 2004
Адрес: Кстово
Сообщений: 54
|
Насчет кривости согласен. В общем смотрите что я сделал:
Создал свой класс MapEvent package org.event { import flash.events.Event; public class MapEvent extends Event { public var num:int; public function MapEvent(type:String,n:int) { super(type); num = n; } } } var ev:MapEvent = new MapEvent("mapOver",3); public function Oblast() { this.red_mc.alpha = 0; regionNum = int(this.name.substring(4,6)); this.addEventListener(MouseEvent.MOUSE_OVER, mOver); this.addEventListener(MouseEvent.MOUSE_OUT, mUp); this.addEventListener(MouseEvent.CLICK, mClick); this.buttonMode = true; this.useHandCursor = true; } public function mOver(e:MouseEvent):void { regionUp(); dispatchEvent(ev); } - и ничего не работает. Не пойму в чем дело. Добавлено через 3 часа 22 минуты Все разобрался сам. Тему можно закрывать. |
Часовой пояс GMT +4, время: 10:45. |
|
« Предыдущая тема | Следующая тема » |
|
|