Tengo una duda, de esas que le carcomen las entrañas y no dejan dormir, he buscado en internet, en cuanto rincón encuentro para obtener alguna info que me lleve a una solución, pero nada... La cosa es: meto en mi codigo dos objetos collada, y quiero que ambos sean interactivos, pero resulta que al volver el material de ambos intercativo, al igual que el viewport, y todo lo demás, cuando doy clic con el mouse sobre los objetos, estos no reaccionan... me pregunto que hará falta? Ah, de actionscript no se casi nada, aunque muchas veces me he caracterizado por arreglarmelas con las cosas nuevas.. pero esto si de verdad que me pudo, así que pido ayuda como capitan de barco que se está hundiendo jajaja.
Igual tengo otra duda y es sobre el uso del canal alfa en dichos objetos.
El codigo que tengo es así:
package{
import flash.display.Sprite;
import flash.events.*;
import org.papervision3d.view.Viewport3D;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.cameras.Camera3D;
import org.papervision3d.materials.BitmapFileMaterial;
import org.papervision3d.materials.utils.MaterialsList;
import org.papervision3d.objects.parsers.Collada;
import org.papervision3d.render.BasicRenderEngine;
import org.papervision3d.events.*;
import org.papervision3d.events.InteractiveScene3DEvent;
public class PV3DCollada extends Sprite
{
private var viewport: Viewport3D;
private var scene: Scene3D;
private var camera: Camera3D;
private var renderer: BasicRenderEngine;
private var CAMMaterial: BitmapFileMaterial;
private var CAMcollada: Collada;
private var GOBMaterial: BitmapFileMaterial;
private var GOBcollada: Collada;
public function PV3DCollada():void
{
viewport = new Viewport3D(800, 600, false, true);
addChild(viewport);
viewport.buttonMode = true;
scene = new Scene3D();
camera = new Camera3D();
renderer = new BasicRenderEngine();
CAMMaterial = new BitmapFileMaterial("CAMDiffuseMap.jpg");
CAMMaterial.interactive = true;
GOBMaterial = new BitmapFileMaterial("GOBDiffuseMap.jpg");
GOBMaterial.interactive = true;
var CAMmaterialsList:MaterialsList = new MaterialsList();
CAMmaterialsList.addMaterial(CAMMaterial, "CAMDiffuseMap" );
var GOBmaterialsList:MaterialsList = new MaterialsList();
GOBmaterialsList.addMaterial( GOBMaterial, "GOBDiffuseMap" );
CAMcollada = new Collada("CAM.dae", CAMmaterialsList, .1);
scene.addChild(CAMcollada);
GOBcollada = new Collada("GOB.dae", GOBmaterialsList, .1);
scene.addChild(Gobernacioncollada);
GOBcollada.addEventListener(InteractiveScene3DEvent.OBJECT_CLICK, GOBClick);
CAMcollada.addEventListener(InteractiveScene3DEvent.OBJECT_CLICK, CAMClick);
addEventListener(Event.ENTER_FRAME, loop);
function loop(e:Event):void
{
renderer.renderScene(scene, camera, viewport);
}
function CAMClick(e:InteractiveScene3DEvent):void
{
e.target.x = Math.random()*1000 - 500;
e.target.y = Math.random()*1000 - 500;
e.target.z = Math.random()*1000 - 500;
}
function GOBClick(e:InteractiveScene3DEvent):void
{
e.target.x = Math.random()*1000 - 500;
e.target.y = Math.random()*1000 - 500;
e.target.z = Math.random()*1000 - 500;
}
}
}
}
... de verdad se la agradeceré, igual de esto todos aprendemos...
