Estoy con una duda que aun no pude resolver aunq el problema que Flash denomina "1084" se resume en un símbolo "{"... Cuesta mucho encontrar ya he revisado el código y aún no ubico donde faltaría ese símbolo si realmente falta.
La intención es hacer un scroll horizontal de imagenes externas que se vayan cargando dentro de un MC. De paso dejo el código y es un collage de algunos trbajos aunq modificados...
Desde ya muchas gracias!!!
DEL SCROLL
Código:
Este es el nudo del problema... // Imagenes ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ // 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 = 1024; // ancho de miniatura en su punto máx (en el centro del carrusel) en px var ancho_miniatura:Number = 415; // velocidad en escala inversa, cuanto menor sea su valor más rápido gira var v_giro:Number=10; 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 = 1; var y0:Number = 193; // ------------------------------------------------------------------------------ // ----- 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 = 15; //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("foto/"); //mi_mcl.loadClip("ruta"); 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() { num_fotos_cargadas++; //trace("onLoadInit: "+orden+" | cargadas: "+num_fotos_cargadas+"/"+num_fotos); if (num_fotos_cargadas>=num_fotos) { setTimeout(_root.girar_carrusel,10); } }; } 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)); } initTab ();