En la parte de abajo hay unas lineas comentadas donde configuro las rutas de los archivos, que e probado de varias formas y aun no consigo que funcione.
Código ActionScript:
Ver original
System.useCodepage = true; XML.prototype.ignoreWhite = true; import flash.display.BitmapData; import flash.geom.Rectangle; import flash.geom.Matrix; // ancho carrusel en px var ancho_carrusel:Number = 500; // ancho de miniatura en su punto máx (en el centro del carrusel) en px var ancho_miniatura:Number = 100; // velocidad en escala inversa, cuanto menor sea su valor más rápido gira var v_giro:Number=50; var reflejar:Boolean = false; // color de fondo para que el reflejo quede bien var color_fondo:Number = 0xF4F4F4; // array donde metemos los elementos del XML var x0:Number = 665; var y0:Number = 85; //aqui se configura todo aqui pongo las rutas de mis archivos como la carpeta con las miniaturas, pero no funciona, en localhost si pero en el servidor no, y estan en las mismas rutas no consigo entender que esta mal var url_fotos:String = "./tema/rulet/f.xml"; var dir_minis:String = "./tema/rulet/miniaturas/"; // ------------------------------------------------------------------------------ // ----- 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; var num_fotos_cargadas:Number; 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 = 6; //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)); };
Codigo Xml
Código xml:
Ver original
<exploracion carpeta="miniaturas"> <archivo nombre="banner.jpg" size="30"/> <archivo nombre="logo.jpg" size="30"/> <archivo nombre="logotipo.jpg" size="30"/> <archivo nombre="logoletras.jpg" size="30"/> <archivo nombre="vicom.jpg" size="30"/> <archivo nombre="a.jpg" size="30"/> </exploracion>