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?