BitmapMaterial no se ajusta al plano papervision
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.
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);
}
}
}
ikerlopezdeaudikana
Llevaba tiempo buscando algo así. Muchas gracias por ponerme en la pista....
Diego Lorenzo
Hola,
Yo para incluir movieclips o bitmaps directamente en Papervision (sin que sean texturas de objetos), los incluyo directamente con las clase DisplayObject2D de la blitzagency: http://labs.blitzagency.com/?p=377 . Es mucho más cómodo, porque por ejemplo, si quieres usar movieclips que roten como MovieMaterial para ponerlos en el escenario, Papervision no los gestiona bien y además de rotar se mueven dentro del objeto en que los has colocado.
Saludos