PDA

Volledige versie bekijken : [PV3D 2.0] InteractiveScene3DEvent alleen als er iedere frame gerenderd wordt?


Mr. Black
%Europe/Berlin %486 %2008, 12:40
Ha guys.

Ik ben lekker bezig met PaperVision3D 2.0, maar nu loop ik tegen een vervelend iets aan. MouseEvents moet je 2.0 niet meer aan plane.container hangen, maar direct aan de Plane. Je luistert dan ook niet naar MouseEvents, maar naar InteractiveScene3DEvents.

item.addEventListener( InteractiveScene3DEvent.OBJECT_CLICK, itemClickHandler );

Maar dit lukt alleen als er iedere frame gerenderd wordt? Als ik een Plane aan de stage toevoeg en slechts één keer render, wordt er met mijn klik niets gedaan. Als al mijn Planes stilstaan (en er dus niet gerenderd wordt - dat zou zonde zijn) worden mijn klikken niet opgevangen. Ik ben nu dus noodgedwongen om dit te doen:

this.addEventListener( Event.ENTER_FRAME, render );

private function render( event:Event ):void
{
renderer.renderScene( scene, camera, viewport );
}

Ik vind het een dirty oplossing, want de Planes bewegen alleen als de gebruiker dat wil (hij kan ze namelijk draggen). Maar op het moment dat hij dat niet doet wordt er dus voor niets gerenderd! Als ik namelijk niet zou renderen zou ik niet weten wanneer de gebruiker ergens op klikt - dat wordt dan niet opgevangen.

Dit is natuurlijk erg jammer. Ik probeer m'n applicatie zo licht mogelijk te houden, maar als ik nu noodgedwongen ieder frame moet gaan renderen...

Heeft iemand hier een oplossing voor of moet het gewoon zo? Kost het veel CPU om te renderen als er toch niets beweegt? :)

Mr. Black
%Europe/Berlin %681 %2008, 17:21
Ik heb nog eens wat onderzoek gedaan, maar in alle voorbeeldjes die ik heb gevonden beweegt het allemaal (en wordt er dus ook iedere frame gerenderd). Ik laat het maar zo staan. Zo CPU-intensief is het nou ook weer niet. :)