Foros del Web » Creando para Internet » Flash y Actionscript »

Carrusel en flash

Estas en el tema de Carrusel en flash en el foro de Flash y Actionscript en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 11/02/2010, 07:37
Avatar de Phoenix23  
Fecha de Ingreso: agosto-2007
Ubicación: 43.286211, -2.171349
Mensajes: 253
Antigüedad: 16 años, 7 meses
Puntos: 1
Carrusel en flash

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
__________________
"La vida se mide por las veces que te levantas, no por las veces que te caes"

visita zarautz!!!
  #2 (permalink)  
Antiguo 03/06/2010, 19:27
 
Fecha de Ingreso: mayo-2010
Ubicación: Peru-lima,comsitas
Mensajes: 6
Antigüedad: 13 años, 10 meses
Puntos: 0
Respuesta: Carrusel en flash

OLA
prueba esto BRO , EN LA PARTE DE num_fotos=5;
eso es lo q muestran en tu xml

Código actionscript:
Ver original
  1. function cargarMiniaturas():Void {
  2.     IMG_array = this.firstChild.childNodes;
  3.     num_fotos = 17;

slds.

Etiquetas: flash, carrousel
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:07.