Este es el código:
Los elementos están todos creados en el escenario.
Hay un movieclip llamado mapa que contiene los botones. Estos botones llaman a la función "recorrida" (que es la importante, la que carga las fotos y la suaviza) y le pasan como parámetro el título (que va a un textField), una descripción (también texto) y le pasan también el rango de las fotos: en que numero empiezan y en cual terminan ej: apretando el boton polideportivo, pasa como parámetro que empieza en el 1 y termina en la foto 7. Al avanzar con los botones de Avanzar o Retroceder, se ven las fotos de acuerdo a su numero.
En el Stage tengo también un movieclip ya creado (contenedor) y dentro de éste hay otro llamado r_conte con un botón que al apretar agranda o disminuye la foto.
Aclaro que las imagenes se cargan dinamicamente y son de 800 x 600 px. El contenedor es del 370 x 277.5 por lo que las imagenes aparecen serruchadas al disminuirles el tamaño. Por esto tube que optar por algún método para suavizarlas.
Bueno, no se que más contarte, sólo que la primer vez que se ejecuta el Flash, se ve perfectamente suvizada la imagen, pero al seleccionar otro botón (se ejecutaría nuevamente la llamada a la función "recorrida") la nueva imagen no aparece suvizada.
Denería haber alguna forma de reiniciar esta función, o el listener o no se que, pero la primera vez que se carga, lo hace correctamente.
Muchas gracias por ver este problema.
Código :
this._lockroot = true;
import flash.display.*;
stop();
//Se ejecuta al apretar el botón de salir
this.botonera.b_salir.onPress = function() {
_root.unloadMovie(this); //esto elimina el Movie Clip que carga esta pelicula
}
var conta,dif,min,max,n:Number;
//****Función para suavizar y mostrar la foto presentada*******
function recorrida(titulo,descripcion:String,mini,maxi:Number){
var titu,descrip:String;
min=mini;
n=min;
max=maxi;
titu=titulo;
descrip=descripcion;
conta=1;
dif=(max-min)+1;
botonera.b_next.enabled=true;
var loader:MovieClipLoader = new MovieClipLoader();
var listener:Object = new Object();
listener.carga=contenedor.r_conte;
listener.onLoadInit = function(mc:MovieClip) {
var bitmap:BitmapData = new BitmapData(mc._width, mc._height, true);
this.carga.attachBitmap(bitmap, this.carga.getNextHighestDepth(),"auto", true);
mc._height=277.5;
mc._width=370;
bitmap.draw(mc);
};
loader.addListener(listener);
loader.loadClip("Recorrida/reco-"+min+".jpg",contenedor.r_conte);
_root.tit.text=titu;
_root.cantfotos.text=(conta+"/"+dif);
_root.descripcion.text=descrip;
_root.contenedor.r_conte._width=370;
_root.contenedor.r_conte._height=277.5;
_root.contenedor.r_conte._x=0;
_root.contenedor.r_conte._y=0;
}
//*************Llamada a la funcion por medio de los botones********
this.mapa.b_poli.onPress=function(){
recorrida("Polideportivo","Polideportivo con "+'\n'+"capacidad para "+'\n'+"600 personas. ",1,7);
}
this.mapa.b_admin.onPress=function(){
recorrida("Administración","Oficinas de la "+'\n'+"Administración "+'\n'+"del IAB ",8,23);
}
this.mapa.b_biblio.onPress=function(){
recorrida("Biblioteca","La Biblioteca del IAB "+'\n'+"cuenta con grandes"+'\n'+" volúmenes de libros. "+'\n'+"También aquí se "+'\n'+"encuentra Secretaría, "+'\n'+"Fotocopiadoras y "+'\n'+"Vivencias.",53,59);
}
this.mapa.b_egb.onPress=function(){
recorrida("EPB","Durante el año 2007"+'\n'+"tuvimos 67 alumnos"+'\n'+"pertenecientes a "+'\n'+"estas modalidades"+'\n'+"de estudio.",28,33);
}
this.mapa.b_polimo.onPress=function(){
recorrida("Polimodal","Durante el año 2007"+'\n'+"tuvimos 168 alumnos"+'\n'+"pertenecientes a "+'\n'+"esta modalidad"+'\n'+"de estudio.",24,27);
}
this.mapa.b_hs.onPress=function(){
recorrida("Residencia "+'\n'+"de señoritas","Esta es la residencia "+'\n'+"de señoritas, donde "+'\n'+"conviven 120 alumnas"+'\n'+"internas.",41,45);
}
this.mapa.b_hv.onPress=function(){
recorrida("Residencia "+'\n'+"de varones","Esta es la residencia "+'\n'+"de varones, donde "+'\n'+"conviven 110 alumnos"+'\n'+"internos.",34,40);
}
this.mapa.b_come.onPress=function(){
recorrida("Comedor","La buena comida"+'\n'+"y el ambiente, "+'\n'+"se unen, para que "+'\n'+"pases los mejores"+'\n'+" momentos junto"+'\n'+" a tus amigos",47,48);
}
this.mapa.b_patio.onPress=function(){
recorrida("Patio Cubierto","Durante la semana"+'\n'+"es patio de juegos y "+'\n'+"salón de actos. Pero"+'\n'+"los fines de semana"+'\n'+"se transforma en "+'\n'+"casa de Dios.",49,52);
}
//Este código se ejecuta cuando apretamos el botón siguiente para ver las fotos
this.botonera.b_next.onPress=function(){
n=n+1;
conta=conta+1;
botonera.b_ante.enabled=true;
if (n>max){
n=max;
conta=dif;
botonera.b_next.enabled=false;
}
else{
var loader:MovieClipLoader = new MovieClipLoader();
var listener:Object = new Object();
listener.carga=contenedor.r_conte;
listener.onLoadInit = function(mc:MovieClip) {
var bitmap:BitmapData = new BitmapData(mc._width, mc._height, true);
this.carga.attachBitmap(bitmap, this.carga.getNextHighestDepth(),"auto", true);
bitmap.draw(mc);
};
loader.addListener(listener);
loader.loadClip("Recorrida/reco-"+n+".jpg",contenedor.r_conte);
loader.removeListener(listener);
_root.cantfotos.text=(conta+"/"+dif);
}
}
//Este código se ejecuta cuando apretamos el botón anterior para ver las fotos
this.botonera.b_ante.onPress=function(){
n=n-1;
conta=conta-1;
botonera.b_next.enabled=true;
if (n<min){
botonera.b_ante.enabled=false;
n=min;
conta=1;
}
else{
loader.removeListener(listener);
var loader:MovieClipLoader = new MovieClipLoader();
var listener:Object = new Object();
listener.carga=contenedor.r_conte;
listener.onLoadInit = function(mc:MovieClip) {
var bitmap:BitmapData = new BitmapData(mc._width, mc._height, true);
this.carga.attachBitmap(bitmap, this.carga.getNextHighestDepth(),"auto", true);
bitmap.draw(mc);
};
loader.addListener(listener);
loader.loadClip("Recorrida/reco-"+n+".jpg",contenedor.r_conte);
_root.cantfotos.text=(conta+"/"+dif);
}
}
//*******************Botón de Impresión
this.botonera.b_printing.onPress=function(){
pj = new PrintJob();
pj.start();
_root.contenedor.r_conte._xscale=70;
_root.contenedor.r_conte._yscale=70;
pj.addPage(contenedor.r_conte,{xMin:0, xMax:800, yMin:0, yMax:600});
pj.send();
_root.contenedor.r_conte._width=370;
_root.contenedor.r_conte._height=277.5;
delete pj;
}