Papervision3d useOwnContainer oraz InteractiveScene3DEvent.OBJECT_CLICK

Właśnie straciłem kilka cennych chwil z mojego życia, szukając rozwiązania dotyczącego klikalnych elementów z Papervision3d. Jak może wiecie, jest taka biblioteka do ActionScript, która nazywa się właśnie Papervision3d i … jak nazwa wskazuje … odpowiada ona za renderowanie scen w trzech wymiarach.

Problem pojawia się w momencie, gdy potrzebujemy klikalny element (np. jakiś obiekt z klas Primitives). Gdy mamy

viewport.interactive = true

oraz materiał również z interactive = true, to możemy użyć event’u o nazwie

InteractiveScene3DEvent.OBJECT_CLICK

Gdy do tego nasz obiekt, który chcemy kliknąć, ma ustawioną właściwość

useOwnContainer = true

to event OBJECT_CLICK przestaje działać – a raczej działa bardzo wybiórczo. Rozwiązaniem okazało się dopisanie jednej linijki kodu do klasy org.papervision3d.view.layer.ViewportLayer.as !

W konstruktorze tej klasy przed init() (linijka numer 55) wystarczy dopisać:

this.mouseChildren = false;

I tyle. Taka prosta rzecz sprawiła, że świat stał się piękniejszy…przynajmniej dla mnie, bo nie muszę dłużej szukać rozwiązania. Postanowiłem opublikować je tutaj, bo nie jest łatwo znaleźć je, mimo tak pomocnego narzędzia jak Google :)

Więcej o Michał Cieślak

Uważam, się jeszcze za młodego człowieka, choć w życiu zaliczyłem już kilka checkpoint'ów, takich jak: ślub, dzieci, własna firma, własne mieszkanie, itp.

30. Wrzesień 2011 przez Michał Cieślak
Kategorie: Actionscript | Tagi: , , , | Napisz komentarz

Napisz coś ciekawego

Pola wymagane są zaznaczone * markiert


Visit Us On FacebookVisit Us On LinkedinVisit Us On TwitterVisit Us On Google PlusVisit Us On PinterestVisit Us On YoutubeCheck Our Feed