Ver Mensaje Individual
  #1 (permalink)  
Antiguo 10/02/2009, 13:11
usherjm
 
Fecha de Ingreso: diciembre-2008
Mensajes: 11
Antigüedad: 15 años, 4 meses
Puntos: 0
Problema 1084...

Hola a todos!!!
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:
// 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 ();
Este es el nudo del problema...