![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Регистрация: Apr 2009
Адрес: Armenia , Yerevan
Сообщений: 145
|
Здравствуйте , собственно такая проблема возникла прошу помочь в этом.
Есть скажем у меня displayobject A и displayobject B . A покрывает Б полностью. При наведении на A прозрачность падает а для B даю glow. И так проблема с B ибо покроен A ом. Как мне реализовать оба ? ну понятно что для A могу довать Но для A мне нужны и mouseover и mouseout. Добавлено через 4 минуты К стате добавлю что крайная идея у меня было , для B использовать hittestpoint но .. надеюсь на что то еффективнее ![]()
__________________
Urartu is a neoHittite and ProtoArmenian kingdom !! |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Если объектов много, то хиттест перебором всех это конечно неприятно.
Но альтернатива – getObjectsUnderPoint() тоже не блеск, так как возвращает самые глубоковложенные элементы объектов, и до самих объектов опять надо подниматься (но этот путь конечно обычно гораздо короче чем перебор сотни невиновных объектов хиттестом).
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Apr 2009
Адрес: Armenia , Yerevan
Сообщений: 145
|
Значет по лехче не получится
постаянно нужно проверять тагда , лучше сделаю отдельные классы там реализую . Спасибо за ответ .
__________________
Urartu is a neoHittite and ProtoArmenian kingdom !! |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Отдельные классы? Хм. Поделитесь потом с сообществом, если не трудно.
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Apr 2009
Адрес: Armenia , Yerevan
Сообщений: 145
|
Да , обезательно поделюсь
дело в том что у меня есть стена , и игроки которие могут быть под стеной , для стени чуть убывается прозрачность при наведении на мышь а остальное должно нормально среагировать на мышь, эти самые у меня специальние классы и для них собираюсь под ентерфрейм все время проверять , и наверно hitTestPoint все же буду применить.psyanim.as ваш ответ не коректен ... то что вы предлогаете это как бы тождествляет А и Б , даже при Б.visible = false у него будут реагирования из за А.
__________________
Urartu is a neoHittite and ProtoArmenian kingdom !! Последний раз редактировалось Vishapakahr; 22.03.2012 в 00:55. |
|
|||||
|
Регистрация: May 2009
Сообщений: 35
|
import flash.display.Sprite; import flash.events.MouseEvent; public class test extends Sprite { private var objectA:Sprite; private var objectB:Sprite; public function test() { objectA = new Sprite(); objectB = new Sprite(); objectA.addEventListener(MouseEvent.MOUSE_OVER, mouseHandler); } private function mouseHandler(e:MouseEvent):void { objectB.dispatchEvent(MouseEvent.MOUSE_OVER); } } при желании можно сделать Тогда он будет срабатывать только если наводишь мышку на objectA |
|
|||||
|
Регистрация: May 2009
Сообщений: 35
|
Я неправильно понял вопрос.
В таком случае можно сделать так: package { import flash.display.Sprite; import flash.events.Event; import flash.events.MouseEvent; import flash.geom.Point; import flash.geom.Rectangle; public class DisapearringWall extends Sprite { private var mousePoint:Point; private var rectBounds:Rectangle; public function DisapearringWall() { addEventListener(Event.ADDED_TO_STAGE, init); } private function init(e:Event):void { removeEventListener(Event.ADDED_TO_STAGE, init); mouseEnabled = false; rectBounds = this.getBounds(stage); stage.addEventListener(MouseEvent.MOUSE_MOVE, moveHandler); } private function moveHandler(e:MouseEvent):void { mousePoint.x = e.stageX; mousePoint.y = e.stageY; if (rectBounds.containsPoint(mousePoint)) { alpha = 0.8; } else { alpha = 1.0; } } } } |
![]() |
![]() |
Часовой пояс GMT +4, время: 06:58. |
|
|
« Предыдущая тема | Следующая тема » |
|
|