Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 20.03.2012, 23:28
Vishapakahr вне форума Посмотреть профиль Отправить личное сообщение для Vishapakahr Найти все сообщения от Vishapakahr
  № 1  
Ответить с цитированием
Vishapakahr

Регистрация: Apr 2009
Адрес: Armenia , Yerevan
Сообщений: 145
По умолчанию среагирование на мышь сразу нескольских обьектов

Здравствуйте , собственно такая проблема возникла прошу помочь в этом.

Есть скажем у меня displayobject A и displayobject B . A покрывает Б полностью. При наведении на A прозрачность падает а для B даю glow. И так проблема с B ибо покроен A ом. Как мне реализовать оба ? ну понятно что для A могу довать

Код AS3:
A.mouseChildren = false;
A.mouseEnabled = false;
Но для A мне нужны и mouseover и mouseout.

Добавлено через 4 минуты
К стате добавлю что крайная идея у меня было , для B использовать hittestpoint но .. надеюсь на что то еффективнее
__________________
Urartu is a neoHittite and ProtoArmenian kingdom !!

Старый 21.03.2012, 02:27
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 2  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Если объектов много, то хиттест перебором всех это конечно неприятно.
Но альтернатива – getObjectsUnderPoint() тоже не блеск, так как возвращает самые глубоковложенные элементы объектов, и до самих объектов опять надо подниматься (но этот путь конечно обычно гораздо короче чем перебор сотни невиновных объектов хиттестом).
__________________
Reality.getBounds(this);

Старый 21.03.2012, 03:05
Vishapakahr вне форума Посмотреть профиль Отправить личное сообщение для Vishapakahr Найти все сообщения от Vishapakahr
  № 3  
Ответить с цитированием
Vishapakahr

Регистрация: Apr 2009
Адрес: Armenia , Yerevan
Сообщений: 145
Значет по лехче не получится постаянно нужно проверять тагда , лучше сделаю отдельные классы там реализую . Спасибо за ответ .
__________________
Urartu is a neoHittite and ProtoArmenian kingdom !!

Старый 21.03.2012, 04:09
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 4  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Отдельные классы? Хм. Поделитесь потом с сообществом, если не трудно.
__________________
Reality.getBounds(this);

Старый 22.03.2012, 00:23
psyanim.as вне форума Посмотреть профиль Отправить личное сообщение для psyanim.as Найти все сообщения от psyanim.as
  № 5  
Ответить с цитированием
psyanim.as
 
Аватар для psyanim.as

Регистрация: May 2009
Сообщений: 35
Код AS3:
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);
		}
 
	}
Теперь если подпишешься на MOUSE_OVER event объекта objectB он будет срабатывать вместе с objectA
при желании можно сделать
Код AS3:
objectB.mouseEnabled = false
Тогда он будет срабатывать только если наводишь мышку на objectA

Старый 22.03.2012, 00:50
Vishapakahr вне форума Посмотреть профиль Отправить личное сообщение для Vishapakahr Найти все сообщения от Vishapakahr
  № 6  
Ответить с цитированием
Vishapakahr

Регистрация: Apr 2009
Адрес: Armenia , Yerevan
Сообщений: 145
Цитата:
Сообщение от Wolsh Посмотреть сообщение
Отдельные классы? Хм. Поделитесь потом с сообществом, если не трудно.
Да , обезательно поделюсь дело в том что у меня есть стена , и игроки которие могут быть под стеной , для стени чуть убывается прозрачность при наведении на мышь а остальное должно нормально среагировать на мышь, эти самые у меня специальние классы и для них собираюсь под ентерфрейм все время проверять , и наверно hitTestPoint все же буду применить.

psyanim.as ваш ответ не коректен ... то что вы предлогаете это как бы тождествляет А и Б , даже при Б.visible = false у него будут реагирования из за А.
__________________
Urartu is a neoHittite and ProtoArmenian kingdom !!


Последний раз редактировалось Vishapakahr; 22.03.2012 в 00:55.
Старый 22.03.2012, 03:34
psyanim.as вне форума Посмотреть профиль Отправить личное сообщение для psyanim.as Найти все сообщения от psyanim.as
  № 7  
Ответить с цитированием
psyanim.as
 
Аватар для psyanim.as

Регистрация: May 2009
Сообщений: 35
Я неправильно понял вопрос.
В таком случае можно сделать так:
Код AS3:
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;
			}
		}
 
	}
 
}
вместо stage можно использовать любой объект относительно которого координаты будут статичны. Или обновлять rectBounds.

Создать новую тему Ответ Часовой пояс GMT +4, время: 05:20.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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