Ver Mensaje Individual
  #8 (permalink)  
Antiguo 03/04/2006, 15:20
Avatar de CarlosMex
CarlosMex
 
Fecha de Ingreso: mayo-2005
Mensajes: 67
Antigüedad: 18 años, 10 meses
Puntos: 0
Pues para quienes tenian duda... :

!nadie reportó problemas con navegadores!

Pero sí hubo quien me cuestionó el script de mi swf y despues de revisar el código, !problema resuelto!

Este es el resultado

El caso se trató en un foro vecino en macuarium.com y esta es la historia:

Analizando el código:

Código:
createEmptyMovieClip("holder", 1); 
createEmptyMovieClip("cuadro", 2); 
aMovies = new Array(); 
aMovies[0] = "image1.jpg"; 
aMovies[1] = "image2.jpg"; 
aMovies[2] = "image3.jpg"; 
aMovies[3] = "image4.jpg"; 
aMovies[4] = "image5.jpg";
aMovies[5] = "image6.jpg";
aMovies[6] = "image7.jpg";
aMovies[7] = "image8.jpg";
aMovies[8] = "image9.jpg";
aMovies[9] = "image10.jpg";
aMovies[10] = "image11.jpg";
aMovies[11] = "image12.jpg";
aMovies[12] = "image13.jpg";
aMovies[13] = "image14.jpg";
aMovies[14] = "image15.jpg";
aMovies[15] = "image16.jpg";
aMovies[16] = "image17.jpg";
aMovies[17] = "image18.jpg";
aMovies[18] = "image19.jpg";
aMovies[19] = "image20.jpg";
aMovies[20] = "image21.jpg";
aMovies[21] = "image22.jpg";
aMovies[22] = "image23.jpg";
aMovies[23] = "image24.jpg";
aMovies[24] = "image25.jpg";
aMovies[25] = "image26.jpg";
aMovies[26] = "image27.jpg";
aMovies[27] = "image28.jpg";
aMovies[28] = "image29.jpg";
aMovies[29] = "image30.jpg";
alfa = false; 
holder._x=holder._y=0, holder._alpha=0; 
conalfa = false; 
onLoad = function () { 
cargar(); 
}; 
cargar = function () { 
holder.loadMovie(aMovies[random(29)]); 
alfa(); 
}; 
alfa = function () { 
if (!conalfa) { 
    cuadro.onEnterFrame = function() { 
        holder._alpha += 5; 
        if (holder._alpha>=100) { 
            cuadro.onEnterFrame = null; 
            conalfa = true; 
            tiempo = setInterval(alfa, 2000); 
            } 
        }; 
} 
if (conalfa) { 
cuadro.onEnterFrame = function() { 
holder._alpha -= 5; 
if (holder._alpha<=0) { 
cuadro.onEnterFrame = null; 
conalfa = false; 
clearInterval(tiempo); 
cargar(); 
} 
}; 
} 
};
Y Tak de macuarium.com me responde:

Cita:
yo quitaría

alfa = false;

ya que alfa no es una variable

y añadiría una precarga antes de llamar a la función cargar();

var acceso = 0;
this.onEnterFrame();
if (acceso == 0) {
l = _root.getBytesLoaded();
t = _root.getBytesTotal();
if (l == t) {
acceso = 1;
cargar();
}
}

y las funciones, las llamaría de la forma:

function cargar()

y function alfa()
Hice los cambios y funcionó. A lo cual le pregunté a Tak que dónde pensaba que estaba el problema, sobre todo porque siendo un problema de código, el swf no funcionaría en ningún navegador, ni solo ni montado en php o en lo que sea. (esa es la duda que nos queda), pero esta es su respuesta:

Cita:
el envento onLoad se utiliza fundamentalmente para "Invoked when a LoadVars.load() or LoadVars.sendAndLoad() operation has ended." También se utiliza para cargas de XML, pero no se utiliza, porque no evalua una carga real, para la carga de la película. Para ello es mejor calcular los bytes cargados.

Yo creo que había dos factores. Por un lado, al estar todo en 1 fotograma, no dabas tiempo a cargar el array antes de llamar las funciones y por otro lado, la llamad a las funciones daba error.

La construcción

carga = function ()
{}

lo que hace es asignar la funcion a una variable

estás diciendo... la variable carga, le pones lo que salga de la función

esta forma se utiliza cuando va a través de eventos

por ejempolo

XML.onLoad = function ()
{}
le estamos diciendo que al evento cargado del XML, nos haga algo

si quieres declarar una función, mejor hacerlo de la otra forma

function carga()
{}



pd. Pero me puedo equivocar

Lo que no me explico es porqué abriendo directamente el xml, sí que funcionaba. Igual es porque entonces las funciones las interpretaba como eventos del flash, como si fuese el reproductor el que las llamase. Y es posible que la carga sea más rápida llamando directamente el swf.
Esta es la historia, y queda la pregunta: ¿Porqué funcionó en un navegador y en otro no?

__________________
CarlosMex

Última edición por CarlosMex; 19/05/2006 a las 19:11