mi consulta es la siguiente, tengo un flash, que es un carrusel con efecto espejo, logre hacer que se moviera con el teclado con las teclas 4 y 5 del teclado numerico, pero no logro que al presionar otra tecla, por ejemplo el numero 5 del teclado numerico, me levante la direccion asociada a la imagen, aca les dejo el codigo, este va en el primer fotograma, las imagenes las carga de un xml...les dejo el xml luego del codigo.
// ++++ Carrusel v1.0 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Permitimos que el root reciba eventos de teclado
Key.addListener(_root);
// 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 = 800;
// 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=300;
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 url_fotos:String = "Untitled-1.xml";
var dir_minis:String = "fotocarrusel/";
// ------------------------------------------------------------------------------
// ----- 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 =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("fotocarrusel/"+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;
/*onKeyDown = function(){
if (Key.isDown(101)) {
trace(this.carrusel_miniaturas_mc["foto_"+k]);
this.carrusel_miniaturas_mc["foto_"+k]
}
};*/
target_mc.onRelease = function() {
if (ruta.indexOf(".jpg") != -1) {
var temp_array:Array = ruta.split(".jpg");
trace(temp_array);
//getURL("/fotocarrusel/"+temp_array[0], "_blank");
getURL("Untitled-1.xml?id_tuto="+temp_array[0], "_blank");
} else {
getURL("#", "_blank");
}
}
/*
target_mc.onRelease = function() {
// acciones al hacer clic en la foto
if (ruta.indexOf(".gif") != -1) {
var temp_array:Array = ruta.split(".gif");
getURL("Untitled-1.xml?id_tuto="+temp_array[0], "_blank");
} else {
getURL("#", "_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() {
if (Key.isDown(100)) {
incre += (-x0)/_root.v_giro;
}
if (Key.isDown(102)) {
incre += (x0)/_root.v_giro;
}
codigo = Key.getCode()
if (codigo == 100){
incre += (-x0)/_root.v_giro;
}
if (codigo == 102){
incre += (x0)/_root.v_giro;
}
//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;
Key.addListener(myListener);
}
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));
};
aca esta el xml
<?xml version="1.0" encoding="iso-8859-1"?>
<exploracion carpeta="miniaturas">
<!-- <archivo nombre="000f.swf" size="23"/> -->
<archivo nombre="1.jpg" size="1"/>
<archivo nombre="10.jpg" size="3"/>
<archivo nombre="11.jpg" size="1"/>
<archivo nombre="12.jpg" size="0"/>
<archivo nombre="13.jpg" size="2"/>
<archivo nombre="14.jpg" size="2"/>
<archivo nombre="15.jpg" size="1"/>
<archivo nombre="16.jpg" size="2"/>
<archivo nombre="17.jpg" size="5"/>
<archivo nombre="18.jpg" size="3"/>
<archivo nombre="19.jpg" size="2"/>
<archivo nombre="2.jpg" size="1"/>
<archivo nombre="20.jpg" size="4"/>
<archivo nombre="21.jpg" size="1"/>
<archivo nombre="22.jpg" size="2"/>
<archivo nombre="23.jpg" size="9"/>
<archivo nombre="24.jpg" size="1"/>
<archivo nombre="25.jpg" size="2"/>
<archivo nombre="26.jpg" size="7"/>
<archivo nombre="27.jpg" size="2"/>
<archivo nombre="28.jpg" size="13"/>
<archivo nombre="29.jpg" size="5"/>
<archivo nombre="3.jpg" size="6"/>
<archivo nombre="30.jpg" size="1"/>
<archivo nombre="31.jpg" size="2"/>
<archivo nombre="32.jpg" size="2"/>
<archivo nombre="34.jpg" size="3"/>
<archivo nombre="35.jpg" size="6"/>
<archivo nombre="36.jpg" size="7"/>
<archivo nombre="4.jpg" size="1"/>
<archivo nombre="5.jpg" size="1"/>
<archivo nombre="6.jpg" size="1"/>
<archivo nombre="7.jpg" size="1"/>
<archivo nombre="8.jpg" size="1"/>
<archivo nombre="9.jpg" size="3"/>
</exploracion>
que en este caso se llama Untitled-1.xml
si alguien puede ayudarme, desde ya muchas gracias.

