Hola... Tengo el siguiente código. Estoy tratando de pegar una imagen a un mc de la biblioteca. Una vez pegada esa imagen quiero convertir todo en un bitmapdata para poder utilizarlo como BitmapMaterial.

El problema es que el material que sale de hay solo cubre una cuarta parte del plano. Alguna idea?

Muchas gracias.


Código :

package {
   
   import flash.display.*;
   import flash.net.URLRequest;
   import flash.net.URLLoader;
   import flash.events.*;
      
   import org.papervision3d.objects.DisplayObject3D;
   import org.papervision3d.objects.primitives.Plane;
   import org.papervision3d.view.BasicView;
   import org.papervision3d.materials.ColorMaterial;
   import org.papervision3d.materials.BitmapMaterial;
      
   public class BlogPanel0 extends BasicView {

      private var holder:DisplayObject3D;
      
      private var bm:BitmapMaterial;
      private var panel:Panel;
      
      private var ancho:Number;
      private var alto:Number;
      
      private var do3d:DisplayObject3D;
      private var p:Plane;
      
      private var pBoton:Plane;
      
      private var k:uint=0;
      
      
      public function BlogPanel0() {
         
         super(0, 0, true, true, "CAMERA3D");
         
         viewport.buttonMode=true;
         viewport.useHandCursor=true;

         holder = new DisplayObject3D();
         
         camera.x=stage.stageWidth/2;
         camera.z=-400;
         holder.x=stage.stageWidth/2
         scene.addChild(holder);
         
         initfront ();


      }

               
      private function initfront():void {
            
         panel = new Panel ();
         
         var l:Loader= new Loader ();
         
         l.load(new URLRequest("prueba.jpg"));
         l.contentLoaderInfo.addEventListener (Event.COMPLETE,cargado)
                     
         
      }

      function cargado (e:Event){
         
         panel.addChild (e.target.content);
         
         var bitmapData:BitmapData = new BitmapData(301,400,false);
         
         bitmapData.draw(panel,null,null,null,null,true);
         
         bm= new BitmapMaterial(bitmapData);
         
         bm.interactive = true;
         
         for (var i:uint=0;i<3;++i){
         poner();
         }
         
         this.startRendering();
      
      }
      private function poner():void {
                              
               var quality:Number=5;
               var paraBoton:ColorMaterial = new ColorMaterial(0x000000)
               paraBoton.interactive=true;
               paraBoton.oneSide = true;
               
               do3d = new DisplayObject3D();
               
               p = new Plane(bm,225,350,quality,quality);
               pBoton = new Plane (paraBoton,30,20,quality,quality);
               
               do3d.addChild(p);
               do3d.addChild(pBoton);
               pBoton.x=20;
               pBoton.y=-20;
               pBoton.z=-40;
               do3d.name="t"+k;
               k++
                                              
                  switch (do3d.name) {
                     case "t0":
                     do3d.x = 0;
                     do3d.y = 0;
                     break;
                     
                     case "t1":
                     do3d.x = -225;
                     do3d.y = 0;
                     break;
                  
                     case "t2":
                     do3d.x = 225;
                     do3d.y = 0;
                     break;
                     
                     
               }

               holder.addChild(do3d);
               
      }
      
                        
      protected override function onRenderTick(event:Event = null):void {
         
         renderer.renderScene(scene, camera, viewport);
      }
      
   }
}