Hola a tod@s,
Tengo este código y no se porque no me funciona.
Código:
// ++++ Carrusel v1.0 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// ajustes para la carga del xml
System.useCodepage = true;
XML.prototype.ignoreWhite = true;
// para no tener que escribir la ruta completa de las clases que usaremos más adelante
import flash.display.BitmapData;
import flash.geom.Rectangle;
import flash.geom.Matrix;
// -----------------------------------------------------------------------------
// ----- ajustes personalizables -----------------------------------------------
// -----------------------------------------------------------------------------
// ancho carrusel en px
var ancho_carrusel:Number = 700;
// ancho de miniatura en su punto máx (en el centro del carrusel) en px
var ancho_miniatura:Number = 90;
// velocidad en escala inversa, cuanto menor sea su valor más rápido gira
var v_giro:Number=30;
var reflejar:Boolean = true;
// color de fondo para que el reflejo quede bien
var color_fondo:Number = 0xF4F4F4;
// array donde metemos los elementos del XML
//var x0:Number = 365;
//var y0:Number = 185;
var x0:Number = 400;
var y0:Number = 216;
var url_fotos:String = "imagenes.xml";
var dir_minis:String = "images/";
// ------------------------------------------------------------------------------
// ----- fin ajustes personalizables --------------------------------------------
// ------------------------------------------------------------------------------
// objeto XML que carga la lista de miniaturas
// Hasta aquí hemos definido una serie de ajustes iniciales.
var IMG_array:Array;
var incre:Number=0;
var num_fotos:Number=5;
var num_fotos_cargadas:Number=5;
var radio:Number = (ancho_carrusel-ancho_miniatura-10)*0.5;
var miniaturasXML:XML = new XML();
miniaturasXML.onLoad = cargarMiniaturas;
miniaturasXML.load(url_fotos);
// funcion que se ejecuta al cargar el XML
function cargarMiniaturas():Void {
IMG_array = this.firstChild.childNodes;
num_fotos = 17;
//num_fotos = IMG_array.length;
var contenedor:MovieClip = _root.createEmptyMovieClip("contenedor_mc", _root.getNextHighestDepth());
contenedor._y = y0;
contenedor._visible = false;
var carrusel:MovieClip = contenedor.createEmptyMovieClip("carrusel_miniaturas_mc", contenedor.getNextHighestDepth());
// lo posiciono donde nos conviene
carrusel._x = x0;
//carrusel._y = y0;
num_fotos_cargadas = 0;
for (var k:Number = 0; k<num_fotos; k++) {
crearMiniatura(IMG_array[k].attributes.nombre,k);
}
}
function crearMiniatura(ruta:String, orden:Number):Void {
trace("ruta = "+ruta);
// clip contendrá la imagen
var clip:MovieClip = contenedor_mc.carrusel_miniaturas_mc.createEmptyMovieClip("foto_"+orden, contenedor_mc.carrusel_miniaturas_mc.getNextHighestDepth());
clip.forceSmoothing = true;
var dentro:MovieClip = clip.createEmptyMovieClip("foto", clip.getNextHighestDepth());
dentro.forceSmoothing = true;
clip.orden = orden;
// para cargar la miniatura definimos un objeto MovieClipLoader
// y un objeto detector de eventos
var mi_mcl:MovieClipLoader = new MovieClipLoader();
var miListener:Object = new Object();
mi_mcl.addListener(miListener);
// cargamos la imagen
mi_mcl.loadClip(dir_minis+ruta,dentro);
//mi_mcl.loadClip("http://www.tutoriales-flash.com//miniaturas/"+ruta,dentro);
miListener.onLoadStart = function(target_mc:MovieClip) {
// cuando comienza la carga de la imagen
// ponemos al _alpha a 0
target_mc._alpha = 0;
};
miListener.onLoadProgress = function(target_mc:MovieClip, bytesLoaded:Number, bytesTotal:Number) {
// aquí podéis poner acciones para mostrar una precarga,
// este caso no lo hemos considerado oportuno
};
// cuando ya se ha completado la carga y tenemos disponible el clip
miListener.onLoadInit = function(target_mc:MovieClip) {
//target_mc.smoothBitmap();
var coef:Number = target_mc._width/ancho_miniatura;
target_mc._height = int(target_mc._height/coef);
target_mc._width = ancho_miniatura;
target_mc._alpha = 100;
target_mc._x = -(int(target_mc._width*0.5));
target_mc._y = 0;
target_mc.onRelease = function() {
// acciones al hacer clic en la foto
if (ruta.indexOf(".gif") != -1) {
var temp_array:Array = ruta.split(".gif");
getURL("http://www.tutoriales-flash.com/tutorial.asp?id_tuto="+temp_array[0], "_blank");
} else {
getURL("http://www.tutoriales-flash.com", "_blank");
}
};
num_fotos_cargadas++;
//trace("onLoadInit: "+orden+" | cargadas: "+num_fotos_cargadas+"/"+num_fotos);
if (num_fotos_cargadas>=num_fotos) {
setTimeout(_root.girar_carrusel,500);
}
};
}
function girar_carrusel() {
contenedor_mc._y = y0-contenedor_mc._height;
if (reflejar) {
var reflejo:MovieClip = _root.createEmptyMovieClip("reflejo_miniaturas_mc", _root.getNextHighestDepth());
reflejo._yscale = -100;
reflejo._y = contenedor_mc._y+contenedor_mc._height*2+1;
var myMatrix:Matrix = new Matrix();
myMatrix.createGradientBox(ancho_carrusel,contenedor_mc._height,Math.PI/2,0,-15);
var sombreado:MovieClip = _root.createEmptyMovieClip("sombreado_mc", _root.getNextHighestDepth());
var colors:Array = [color_fondo, color_fondo, color_fondo];
var alphas:Array = [40, 90, 100];
var ratios:Array = [0, 160, 255];
sombreado.beginGradientFill("linear",colors,alphas,ratios,myMatrix);
sombreado.moveTo(0,0);
sombreado.lineTo(ancho_carrusel,0);
sombreado.lineTo(ancho_carrusel,contenedor_mc._height);
sombreado.lineTo(0,contenedor_mc._height);
sombreado.lineTo(0,0);
sombreado._y = y0+1;
sombreado._x = x0-sombreado._width*0.5;
}
delete contenedor_mc.onEnterFrame;
contenedor_mc.onEnterFrame = function() {
incre += (_root._xmouse-x0)/_root.v_giro;
for (var k:Number = 0; k<=num_fotos; k++) {
this.carrusel_miniaturas_mc["foto_"+k].girar();
}
if (reflejar) {
var bmp:BitmapData = new BitmapData(ancho_carrusel+100, this._height, true, 0x00000000);
var myRectangle:Rectangle = new Rectangle(0, 0, ancho_carrusel+100, this._height);
bmp.draw(this,new Matrix(),new ColorTransform(),"normal",myRectangle,true);
_root.reflejo_miniaturas_mc.attachBitmap(bmp,1,"auto",true);
}
};
contenedor_mc._visible = true;
}
MovieClip.prototype.girar = function() {
var degrees:Number = _root.incre+(360*this.orden/num_fotos);
var radians:Number = degrees*Math.PI/180;
if (Math.sin(radians)<0) {
this._alpha = 15;
} else {
this._alpha = 100;
}
this._x = radio*Math.cos(radians);
this._xscale = (1-Math.cos(radians+Math.PI*0.5))*99-99;
this.swapDepths(int(this._xscale*10));
};
este es el codigo del archivo xml:
Código:
<?xml version="1.0" ?>
<exploracion carpeta="miniaturas">
<archivo nombre="images/estuches_perso.jpg" size="1" />
<archivo nombre="images/carpetas_perso" size="3" />
<archivo nombre="images/display_perso.jpg" size="1" />
<archivo nombre="images/medios_propios.jpg" size="0" />
<archivo nombre="images/muestrarios_perso.jpg" size="0" />
</exploracion>
Lo que pasa es que no me coge ni se ven la imágenes. Me da los siguientes errores:
ruta = images/estuches_perso.jpg
ruta = images/carpetas_perso
ruta = images/display_perso.jpg
ruta = images/medios_propios.jpg
ruta = images/muestrarios_perso.jpg
ruta = undefined
ruta = undefined
ruta = undefined
ruta = undefined
ruta = undefined
ruta = undefined
ruta = undefined
ruta = undefined
ruta = undefined
ruta = undefined
ruta = undefined
ruta = undefined
Error al abrir la URL
Os agradecería que pudieseis echarme una mano, porque me estoy volviendo loco. No se mucho de actionscript.
Gracias de antemano y saludos
Se me olvidaba, el código está cogido desde esta página:
http://tutoriales-flash.com/tutorial.php?id_tuto=36