| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: May 2009
Beiträge: 10
| onEnterFrame-Listener zu einer Sphere hinzufügen möglich?
Hallo! ich bin relativ neu im Umgang mit Flex und Papervision und habe folgende Frage: ist es möglich einer Instanz der Papervision3D-Klasse Sphere einen EventListener für Event.ENTER_FRAME mitzugeben? ich möchte gern eine Flexanwendung erstellen, die eine Sphere enthält, die wenn man auf sie mit der Maus klickt, anfängt sich zu drehen. Dazu muss die Sphere in jedem Frame, also onEnterFrame prüfen, ob sie geklickt wurde oder nicht. ich habe mal testweise eine Sphere erstellt und ihr einen EventListener für Event.ENTER_FRAME mitgegeben. In dem EventHandler, sorge ich dafür dass die Sphere sich um die Y-Achse dreht. (siehe Code) Wenn ich den Code ausführe, sehe ich die Sphere, aber sie dreht sich nicht. Es kommen allerdings auch keine Fehlermeldungen. ich glaube, der EventListener wird zwar der Sphere hinzugefügt, der EventHandler wird jedoch nie aufgerufen. Wird dieser EventListener nicht der Sphere hinzugefügt, sonder direkt der Instanz meiner Main-Klasse, dann dreht sich die Sphere. Der Code sieht folgendermaßen aus: private var kugel:Sphere; kugel = new Sphere(composit); kugel.addEventListener(Event.ENTER_FRAME,onEnterFr ame); private function onEnterFrame(e:Event):void{ kugel.rotationY++; } scene.addChild(kugel); Hat jemand von Euch vielleicht eine Ahnung warum der EventHandler nicht onEnterFrame aufgerufen wird? Ist es nicht möglich einer Sphere einen ENTER_FRAME-Listener mitzugeben? Bitte Euch hiermit dringend um Hilfe! liebe grüsse flashback1 |
| | |
| | #2 (permalink) |
| Neuer User Registriert seit: May 2002 Ort: Berlin
Beiträge: 13
|
In Pv3D haben DisplayObject3D-s nicht unbedingt einen eigenen Container (Flash-Sprite). Das darstellende Flash-Sprite, wird vom Viewport3D , bzw Viewport3D -Layern verwaltet. Wenn du möchtest kannst du aber "Sphere.useOwnContainer = true" setzen. Sphere.container kann dann Enterframe-Listener adden. Je nachdem wie deine App aufgebaut ist, kommt dadurch aber das zSorting durcheinander. Der bessere Weg ist es, einen einzigen Listener bei deinem Viewport3D bzw der Stage anzumelden und dann die entsprechende Aktion für die Sphere auszuführen. Wenn du sehr viele Object3Ds hast, die sich autonom updaten sollen, bau dir ne Wrapperklasse, mit ner Variable "model" vom Typ DisplayObject3D. Deine Wrapperklasse kann dann eine Funktion "onTick/onEnterframe" haben, die bei Aufruf Aktionen (z.B. rotieren) auf ihr Model ausführt. "onTick/onEnterframe" der Wrapper werden dann ganz normal im RenderLoop aufgerufen. Geändert von lusida (24-05-2009 um 17:07 Uhr) |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |