Buenas ,
He arreglado un poco más el codigo y ahora me falla en la carga de imagenes, el error es :
TypeError: Error #1123: Operador de filtro no admitido en el tipo Scene3D.
at com.clases::Jessi/galeria()
Error #2044: IOErrorEvent no controlado: text=Error #2035: No se encuentra la dirección URL.
Código AS3:
Ver originalfunction galeria(event:Event) {
//creamos un objeto viewer
var viewer:Object = new Object();
viewer.z=0;
viewer.x=0;
viewer.y=0;
// parametros de la camara "viewer"
var d:Number = 150; // distancia del observador al plano 2d
var viewerSpeed:Number = 10; // velocidad del viewer
var tooClose:Number = 100; // cuando es demasiado cerca
// crear dibujo plano: una movie clip scene3D
// y la posicion en medio además de otro para incluirlo
var escena:Scene3D = new Scene3D();
escena.x = stage.width/2;
escena.y = stage.height/2;
// numero objetos
var numberOfObjects:Number = 9;
// definicion de los arrays de cordenadas
var xdata:Array = new Array();
var ydata:Array = new Array();
var zdata:Array = new Array();
var thisObj:Object = new Object();
xdata = []; ydata = []; zdata = [];
xdata = [ -1000, -500, 0, 500, 1000,
-1000, -500, 0, 500, 1000,
-1000, -500, 0, 500, 1000 ]
ydata = [ 100, 100, 100, 100, 100,
100, 100, 100, 100, 100,
100, 100, 100, 100, 100 ]
zdata = [ 600, 601, 602, 603, 604,
900, 901, 902, 903, 904,
1200, 1201, 1202, 1203, 1204 ]
// añadimos los objetos
for (var i:Number = 1; i <= numberOfObjects; i++) {
var imagenURL:URLRequest = new URLRequest("sanJuan/"+i+".JPG");
var imagenLoader:Loader = new Loader();
imagenLoader.load(imagenURL);
escena.("object"+i).load(imagenLoader);
thisObj = escena.("object"+i);
placeObj();
}
// y los colocamos
function placeObj() {
thisObj.x = xdata[i-1];
thisObj.y = ydata[i-1];
thisObj.z = zdata[i-1];
}
// mostramos
function displayObj() {
// limites en la linez z
if (viewer.z < -1000 ) {
viewer.z = -1000
}
if (viewer.z > 900 ) {
viewer.z = 900
}
// limites linea x
if (viewer.x < -1200 ) {
viewer.x = -1200
}
if (viewer.x > 1800 ) {
viewer.x = 1800
}
// limites linea y
if (viewer.y < -700 ) { viewer.y = -700 }
if (viewer.y > 300 ) { viewer.y = 300 }
// calculamos posicion relativa del viewer
var tx:Number = thisObj.x - viewer.x; // tx,ty,tz son la
var ty:Number = thisObj.y - viewer.y; // coordenadas de los objetos
var tz:Number = thisObj.z - viewer.z; // relativas a la camara
// el radio de perspectiva
var pRatio:Number = d/tz;
// aplicamos el radio y escalamos
thisObj.x = tx * pRatio;
thisObj.y = -ty * pRatio; // need minus sign for Flash coords
thisObj.scaleX = thisObj._yscale = 100 * pRatio;
// poner capas delante
thisObj.swapDepths(Math.round(-thisObj.z));
// comprobacion demasiado cerca
if ( tz <= tooClose)
{ thisObj.visible = false; }
else thisObj.visible = true;
}
// creamos al viewer
plano.addChild(escena)
plano.escena.addEventListener(Event.ENTER_FRAME,crearGaleria);
function crearGaleria (){
// ponemos los datos de cordenadasdel ratn al viewer
viewer.x += (mouseX - escena.x)/viewerSpeed;
viewer.y += -(mouseY - escena.y)/viewerSpeed;
// teclas para el movimiento
var up:Boolean = false;
var down:Boolean = false;
var left:Boolean = false;
var right:Boolean = false;
stage.addEventListener(KeyboardEvent.KEY_DOWN,keyPressHandler);
stage.addEventListener(KeyboardEvent.KEY_UP,keyReleaseHandler);
function keyPressHandler(event:KeyboardEvent):void
{
switch( event.keyCode )
{
case Keyboard.UP:
up = true;
break;
case Keyboard.DOWN:
down = true;
break;
case Keyboard.LEFT:
left = true;
break;
case Keyboard.RIGHT:
right = true;
break;
}
}
function keyReleaseHandler(event:KeyboardEvent):void
{
switch( event.keyCode )
{
case Keyboard.UP:
up = false;
break;
case Keyboard.DOWN:
down = false;
break;
case Keyboard.LEFT:
left = false;
break;
case Keyboard.RIGHT:
right = false;
break;
}
}
if (up == true) {
viewer.z += viewerSpeed;
}
else if (down == true) {
viewer.z -= viewerSpeed;
}
// Mostramos
for (i= 1; i <= numberOfObjects; i++)
{
thisObj = escena["object"+i];
placeObj();
displayObj();
}
}
}
Muchas gracias de antemano,