Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   API приложений и сред (http://www.flasher.ru/forum/forumdisplay.php?f=61)
-   -   [Papervision] баблинг события (http://www.flasher.ru/forum/showthread.php?t=151322)

willis83 26.02.2011 04:22

баблинг события
 
Хочу чтобы объект не давал событий более... А у меня получается события получают все в данных координатах клика мышки

cr0w312 26.02.2011 06:15

было бы не плохо кусочек кода посмотреть, а то получается - у меня болит здесь - почему?

nOobCrafter 26.02.2011 10:40

mouseEnable \ mouseChildren ?

willis83 26.02.2011 12:19

Мдя, первый пост весёлый получился, писал будучи в хлам пьяным. Суть в том что над вьюпортом бывает спрайт с листенером на клик, он находится над объектом вьюпорта у которого тоже есть листенер на клик и надо сделать чтобы объект во вьюпорте не принимал клик когда кликаешь по спрайту

Добавлено через 49 минут
Вчера по пьяне соображалось вообще ужасно, такие конструкции ворочал, проржался с утра. Сейчас сделал следующим образом, в классе вью порта создал две функции которые убирают и добавляют слушатели к этим объектам. Передал ссылку на вьюпорт в спрайт и при вызове спрайте просто снимаю слушатели с вьюпорта. К слову спрайт вызывается из дочерних классов вьюпорта. Вроде работает, но если есть идеи получше, с удовольствием выслушаю.

cr0w312 26.02.2011 20:23

Код AS3:

import org.papervision3d.events.InteractiveScene3DEvent;
...
vieport.interactive = true;// Нужно сделать вьюпорт интерактивным
...
var palneMaterial:ColorMaterial = new ColorMaterial();// делаем материал для объекта
planeMaterial.interactive = true;// делаем материал объекта интерактивным, иначе
// события срабатывать не будут
var plane:Plane = new Plane(planeMaterial);// создаем объект c интерактивным материалом
plane.extra = {newTex = "planeTex01.png"};//добавляем в объект свою переменную в данном конкретном случае путь к текстуре
var plane2:Plane = new Plane(planeMaterial);// создаем 2й объект c интерактивным материалом
plane2.extra = {newTex = "planeTex02.png"};
plane.addEventListener(InteractiveScene3DEvent.OBJECT_CLICK, planeClick);//добавляем слушатель 1 объекту
plane2.addEventListener(InteractiveScene3DEvent.OBJECT_CLICK, planeClick);//добавляем слушатель 2 объекту
 
private function planeClick(e:InteractiveScene3DEvent):void{
trace("Click по нашему объекту");
var newPlaneMaterial:BitmapFileMaterial = new BitmapFileMaterial(e.DisplayObject3d.extra.newTex, true);
newPlaneMaterial.interactive = true;
e.DisplayObject3D.material = newPlaneMaterial;//назначаем новый материал объекту под курсором
}



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

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