Le he dado vueltas y vueltas pero llego hasta aquí. Muchas gracias por su ayuda.
XML:
Código XML :
<?xml version="1.0" encoding="utf-8"?> <imagedata> <data imagepath="Image01.jpg" backimagepath="Image01.jpg" indice="1" /> <data imagepath="Image02.jpg" backimagepath="Image02.jpg" indice="2"/> <data imagepath="Image03.jpg" backimagepath="Image03.jpg" indice="3"/> <data imagepath="Image04.jpg" backimagepath="Image04.jpg" indice="4"/> <data imagepath="Image05.jpg" backimagepath="Image05.jpg" indice="5"/> <data imagepath="Image06.jpg" backimagepath="Image06.jpg" indice="6"/> .... </imagedata>
AS:
Código ActionScript :
//Aparecen una serie de contadores (j,k y contadorBack) que están inicializados con valor 0. No he puesto la parte de imports ni declaración de variables...
//Primero cargo el xml en el constructor
loader = new URLLoader();
loader.load(new URLRequest("XML/ImagesData01.xml"));
loader.addEventListener(Event.COMPLETE, initfront);
private function initfront(e:Event):void {
XML_Load=new XML(e.target.data);
lista =new XMLList (XML_Load.data.@backimagepath);
indice=new XMLList (XML_Load.data.@indice);
var long:int=XML_Load.data.length()
for (var i:int = 0; i < long; i++) {
loadimagedata = new Loader();
cargadores.push(loadimagedata)
cargadores[i].contentLoaderInfo.addEventListener(Event.COMPLETE, loaded);
cargadores[i].load(new URLRequest("IMAGES/" + XML_Load.data[i].@imagepath));
}
}
private function loaded(e:Event):void {
bmd =Bitmap(e.target.content).bitmapData;
bm = new BitmapMaterial(bmd);
bm.interactive = true;
bm.oneSide = true;
bm.precise = true;
materials.push(bm);
loadBackimagedata = new Loader();
cargadoresBack.push(loadBackimagedata);
cargadoresBack[contadorBack].contentLoaderInfo.addEventListener(Event.COMPLETE, loadedBack);
cargadoresBack[contadorBack].load(new URLRequest("IMAGES/" + lista[contadorBack]));
contadorBack++;
}
private function loadedBack(e:Event):void {
bmdBack =Bitmap(e.target.content).bitmapData;
bmBack = new BitmapMaterial(bmdBack);
bmBack.interactive = true;
bmBack.oneSide = true;
bmBack.precise = true;
materialsBack.push(bmBack);
poner ();
}
private function poner():void {
do3d = new DisplayObject3D();
do3d.useOwnContainer=true;
p = new Plane(materials[j],100,100,quality,quality);
p2 = new Plane(materialsBack[k],100,100,quality,quality);
p.addEventListener(InteractiveScene3DEvent.OBJECT_PRESS, planeClickedHandler, false, 0, true);
p2.addEventListener(InteractiveScene3DEvent.OBJECT_PRESS, planeClickedHandler, false, 0, true);
k++;
j++;
do3d.addChild(p);
do3d.addChild(p2);
p2.rotationY=180;
planes.push(p);
planesBack.push(p2);
///Aquí vendría un código para la colocación de los do3d
holder.addChild(do3d);
}
