Bezsens
świat oczami Michała Cieślaka

30 wrz, 2011

Papervision3d useOwnContainer oraz InteractiveScene3DEvent.OBJECT_CLICK

Zamieszczony przez: Michał Cieślak w: Actionscript

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 :)

Brak odpowiedzi na "Papervision3d useOwnContainer oraz InteractiveScene3DEvent.OBJECT_CLICK"

Formularz komentarza

Michał Cieślak

Witaj na pierwszej oficjalnej prywatnej stronie Michała Cieślaka. Dotychczasowe produkcje były raczej projektami komercyjnymi i nie dotyczyły mojej osoby, a co najwyżej moich gier lub innych produkcji. Ta strona jest inna, o czym przekonacie się czytając zawarte w niej artykuły.