Comunidad de diseño web y desarrollo en internet online

galeria de imagenes en AS2 - problema IE vs FF

Citar            
MensajeEscrito el 27 Ene 2010 11:08 am
Hola cristaleros...
Tengo una galería hecha en Flash, que carga las imágenes desde un XML programado desde PHP.
La galería original la bajé de http://www.tutoriales-flash.com/tutorial.php?id_tuto=29. La original me funciona sin problemas. La modificada por mí cambia en el tamaño de las fotos pequeñas, en que va pasando horizontalmente de página y que levanta las fotos con Lightwindow. Todo esto funciona, el problema es que en IE la veo perfecta las fotos pequeñas, pero en FF veo las pequeñas y otras peuqeñas pero que parecen tener el tamaño de las pequeñas de la galería original, peor no existen tales imágenes originales en esta modificación. Qué puede ser?

La galería necesita una carpeta "minis", para las fotos pequeñas; una carpeta "originales", par alas fotos a tamaño; el archivo "verMiniaturas.php", el archivo que genera el XML; y "galería.swf".

verMiniaturas.php

Código PHP :

<?php
header("Content-type: text/xml");
$dir="minis/";
$dr=@opendir($dir);
if(!$dr)
{
   echo "<error/>";
   exit;
}
else
{
   echo "<exploracion>";
   // recorremos todos los elementos de la carpeta
   while (($archivo = readdir($dr)) !== false)
   {
      // comprobamos que sean archivos y no otras carpetas
      if(filetype($dir . $archivo)!="dir")
      {
         $tam=round(filesize($dir . $archivo)/1024,0);
         echo "<archivo nombre='$archivo' tam='$tam'/>";
      }
   }
   echo "</exploracion>";
   closedir($dr);
}
?>


Código ActionScript :

// acciones en fotograma 1
stop();
System.useCodepage = true;
XML.prototype.ignoreWhite = true;
import mx.transitions.Tween;
// separacion-> distancia entre las imágenes
// tanto horizontal como vertical
var separacion:Number = 28;
// vbles para pasar de página
var pagina_actual:Number = 1;
var num_paginas:Number;
// array donde metemos los elementos del XML
var IMG_array:Array;
// objeto XML que carga la lista de miniaturas
var miniaturasXML:XML = new XML();
miniaturasXML.onLoad = mostrarMiniaturas;
//miniaturasXML.load("/asp/verMiniaturas.asp");
miniaturasXML.load("verMiniaturas.php");
// funcion que se ejecuta al cargar el XML
function mostrarMiniaturas():Void {
   // contadores de columna y fila para
   // disponer las miniaturas
   var fila:Number = 0;
   var col:Number = 0;
   // paso los datos del XML al array
   IMG_array = this.firstChild.childNodes;
   // como caben 30 fotos por página podemos
   // saber el núm de páginas necesarias para
   // mostrar todas las fotos
   num_paginas = Math.ceil(IMG_array.length/30);
   // creo el clip donde meteremos todas las miniaturas
   var lienzo:MovieClip = _parent.photoscont.createEmptyMovieClip("lienzo_miniaturas", _parent.photoscont.getNextHighestDepth());
   lienzo.cacheAsBitmap = true;
   // lo posiciono donde nos conviene
   lienzo._x = 0;
   lienzo._y = 175;
   // y lo enmascaro con el clip situado en la
   // capa mascara. se enmascara para hacer el deslizamiento del 
   // clip cuando tengamos muchas miniaturas y no entren todas a
   // la vez en pantalla (nuestro caso)
   lienzo.setMask(mascara_mc);
   // recorro el array que contiene la lista con los nombres de 
   // los archivos de las miniaturas e invoco la función crearMiniatura
   // que es la que carga la imagen, la recoloca, le pone un pequeño
   // marco y le asigna las acciones para verla ampliada
   for (var k:Number = 0; IMG_array[k]; k++) {
      // extraigo la ruta del archivo de imagen
      // var ruta:String = "minis/"+IMG_array[k].attributes.nombre;
      // como sólo tengo diez columnas, cuando llegue a 
      // la décima, avanzo una fila y retorno a la primera
      if (col>9) {
         col = 0;
         fila++;
      }
      // creo la miniatura. extraigo la ruta del archivo de imagen                                                                                                         
      // y la paso como tercer parámetro
      crearMiniatura(col, fila, IMG_array[k].attributes.nombre);
      col++;
   }
}
function crearMiniatura(columnaF:Number, filaF:Number, ruta:String) {
   // bajo_clip es el clip que contendrá el marco de la miniatura
   var bajo_clip:MovieClip = lienzo_miniaturas.createEmptyMovieClip("bajo_"+filaF+"_"+columnaF, lienzo_miniaturas.getNextHighestDepth());
   // clip contendrá la imagen
   var clip:MovieClip = lienzo_miniaturas.createEmptyMovieClip("foto_"+filaF+"_"+columnaF, lienzo_miniaturas.getNextHighestDepth());
   // 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);
   clip.valor = "aaa";
   // cargamos la imagen
   mi_mcl.loadClip("minis/"+ruta, clip);
   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) {
      // recolocamos la imagen (todavía está oculta, con _alpha=0)
      target_mc._x = (separacion*columnaF)+(80-target_mc._width)*0.5;
      target_mc._y = (separacion*filaF)+(325-target_mc._height)*0.5;
      // recolocamos el marco que rodea a la foto
      bajo_clip._x = target_mc._x-1;
      bajo_clip._y = target_mc._y-1;
      // dibujamos el marco
      with (bajo_clip) {
         beginFill(0xffffff);
         lineStyle(1, 0xEEEEEE, 100);
         lineTo(target_mc._width+1, 0);
         lineTo(target_mc._width+1, target_mc._height+1);
         lineTo(0, target_mc._height+1);
         lineTo(0, 0);
         endFill();
      }
      // al pinchar sobre el área del marco,
      // mostramos la foto grande con la función
      // verFotoGrande
      bajo_clip.onRelease = function() {
         verFotoGrande(ruta);
      };
      // muestro la miniatura animando el _alpha hasta 100
      var myTween:Tween = new Tween(target_mc, "_alpha", mx.transitions.easing.Regular.easeOut, 0, 100, 2, true);
   };
}
function verFotoGrande(ruta:String) {
   getURL("javascript:muestraImagen('"+ruta+"');");
}

function moverLienzo(posX:Number):Void {
   var myTween:Tween = new Tween(lienzo_miniaturas, "_x", mx.transitions.easing.Regular.easeOut, lienzo_miniaturas._x, posX, 1, true);
}
// deshabilito de inicio el botón de volver atrás
// ya se muestra la página 1
pMenos_btn.enabled = false;
pMenos_btn._alpha = 30;


Muchas gracias.
Salut! Emiliano

Por boratlon

Claber

139 de clabLevel



 

msie7
Citar            
MensajeEscrito el 27 Ene 2010 11:14 am
Agrego... únicamente Firefox no muestra bien la galería modificada, la original sí, peor la modificada no... UNICAMENTE Firefox... en IE7, Chrome 3, Safari 4 y Opera 9 funciona y se ve perfecto... por qué nuestro amigo Firefox está fallando de esa manera? =(
Salut! Emiliano

Por boratlon

Claber

139 de clabLevel



 

msie7
Citar            
MensajeEscrito el 27 Ene 2010 09:52 pm
el problema debe estar en la funcion de javascript muestraImagen();
pero no pusiste el código de javascript, vas a tener que tirar un alerte del parametro "ruta" para ver que ruta le esta llegando al navegador.

saludos

Por arix

20 de clabLevel



 

firefox
Citar            
MensajeEscrito el 28 Ene 2010 12:00 am
Hola... no es ahí el problema... es cuando muestra las imágenes pequeñas en el flash... igual ahora lo subí a un servidor on line y se bien... así que... no problem... igualmente tengo otras dudas que más tarde haré saber...
Salut y gracias.
Emiliano

Por boratlon

Claber

139 de clabLevel



 

msie7
Citar            
MensajeEscrito el 28 Ene 2010 12:07 am
en el flash? que raro, tenes la misma version de flash player en firefox y en explorer?

puede ser que hayas compilador, luego testeado en firefox, y luego corregido algo y compilado nuevamente, y al probarlo en ff no andaba e intentaste varias veces hasta que abriste explorer y funcionaba correctamente?

si es asi limpia el cache del firefox, quizá estaba utilizando el swf que guardo en cache, alguna veces me lo ha hecho el firefox.

Por arix

20 de clabLevel



 

firefox
Citar            
MensajeEscrito el 28 Ene 2010 12:15 am
No fue así... primero lo probé en IE luego en FF... pero no importa... ya se ve bien...
Ahora tengo otra duda... quiero que la carga sea horizontal... ahora la hace vertical...
Hice que pase de página horizontalmente... pero no me da el bocho para pasar la carga a horizontal...
O sea las primeras 50 fotos que se ven, tienen que ser las primeras que voy a cargar desde una base de dato... cómo hago para que tome las siguientes 50 como las primeras?
Gracias totales...

Por boratlon

Claber

139 de clabLevel



 

msie7

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.