2009-08-25 4 views
1

Ich habe Probleme, eine interaktive, animierte Ebene zu erhalten, die von einem MovieClip in der Bibliothek erstellt wurde, um jegliche Art von Animation anzuzeigen oder Mausereignisse zu erhalten.Probleme mit Interactive Plane

Insbesondere habe ich Probleme mit den verschiedenen Status der Button-Instanzen im MovieClip.

Hier ist der grundlegende Code, den ich mit dem Testen bin:

private function init3D():void 
    { 
     viewport = new Viewport3D(1024, 768, false, true); 
     addChild(viewport); 

     camera = new Camera3D(); 
     camera.z = -500; 
     camera.zoom = 1; 
     camera.focus = 500; 
     camera.target = DisplayObject3D.ZERO; 

     scene = new Scene3D(); 
     renderer = new BasicRenderEngine(); 

     stage.addEventListener(Event.ENTER_FRAME, loop); 
    } 

    public function addChild3D(link:String):Plane 
    { 
     //var demoPlane:DemoPlane = new DemoPlane(link); 
     //return scene.addChild(demoPlane.getPlane()); 

     var material:MovieAssetMaterial = new MovieAssetMaterial(link, false, true, false, false); 
     material.interactive = true; 
     //material.smooth = true; 
     material.animated = true; 

     var plane_mc:Plane = new Plane(material, 0, 0, 10, 10); 
     scene.addChild(plane_mc); 

    } 

    private function loop(evt:Event):void 
    { 
     renderer.renderScene(scene, camera, viewport); 
    } 
+0

mich korrigieren, wenn ich falsch, aber ich sehe keinen Handler für alle Tasten im Code. –

+0

Die Handler befinden sich im MovieClip, den ich mit addChild3D hinzufüge: start_btn.addEventListener (MouseEvent.CLICK, startDemo); –

Antwort

0

ich Sie gerade versucht haben, Code

package{ 

    import org.papervision3d.*; 
    import org.papervision3d.view.*; 
    import org.papervision3d.cameras.*; 
    import org.papervision3d.materials.*; 
    import org.papervision3d.objects.*; 
    import org.papervision3d.objects.primitives.*; 
    import org.papervision3d.scenes.*; 
    import org.papervision3d.render.*; 

    import flash.display.*; 
    import flash.events.*; 

    public class PV3DPlane extends MovieClip{ 

     private var viewport:Viewport3D; 
     private var camera:Camera3D; 
     private var scene:Scene3D; 
     private var renderer:BasicRenderEngine; 
     private var plane:Plane; 

     public function PV3DPlane(){ 
      init3D(); 
     } 

     private function init3D():void 
     { 
       viewport = new Viewport3D(1024, 768, false, true); 
       addChild(viewport); 

       camera = new Camera3D(); 
       camera.z = -500; 
       camera.zoom = 1; 
       camera.focus = 500; 
       camera.target = DisplayObject3D.ZERO; 

       scene = new Scene3D(); 
       renderer = new BasicRenderEngine(); 


       plane = addChild3D('asset'); 

       stage.addEventListener(Event.ENTER_FRAME, loop); 
     } 

     public function addChild3D(link:String):Plane 
     { 
       var material:MovieAssetMaterial = new MovieAssetMaterial(link, false, true, false, false); 
       material.interactive = true; 
       //material.smooth = true; 
       material.animated = true; 
       material.doubleSided = true; 

       var plane_mc:Plane = new Plane(material, 0, 0, 10, 10); 
       scene.addChild(plane_mc); 
       return plane_mc; 
     } 

     private function loop(evt:Event):void 
     { 
       plane.rotationY++; 
       renderer.renderScene(scene, camera, viewport); 
     } 
    } 
} 

I funktioniert gut für mich ... Ich habe gerade einen Dummy-Clip mit dem Namen Taste und hinzugefügt:

button.addEventListener('click', function(){trace('click')}); 

ich die Spur zu bekommen, alles funktioniert gut. Welche Version von Papervision verwenden Sie? Auf dieser Maschine Ich habe eine ältere Papervision3D Public Beta 2.0 - Great White (20.08.25)

hier ist die fla und die as Datei, die ich verwendet.

+0

Ich denke, das Problem ist, dass ich versuche, SimpleButtons zu verwenden, und diese werden nicht von PV3D unterstützt. –

Verwandte Themen