Comunidad de diseño web y desarrollo en internet online

No puedo descargar swf al cargar otro

Citar            
MensajeEscrito el 29 Jun 2010 09:07 am
Hola, soy nuevo en el foro. Estoy intentando hacerme una página personal y me he encontrado con un problema. Al cargar un swf, desde el swf principal, se queda por debajo el principal y todos los botones activos. Yo cargo con loadmovie (nombredelarchivo.swf);. He intentado con todas las opcione que he leido en este foro, pero a mi no me funcionan. No tengo ni idea de As, así que intento entender como hacerlo pero no tengo resultados. Alguien puede ayudarme?. GRacias en cualquiercaso.

Por havivi150

3 de clabLevel



 

msie8
Citar            
MensajeEscrito el 01 Jul 2010 04:01 pm
Antes que nada, desearía que especifiques un poco mas tu trabajo.
Para empezar, para cargar swf desde otro swf, solo tienes 2 opciones:
- loadmovie
- loadmovienum

Loadmovie carga películas swf externas en el movieclip que le indiques... p.e. movieclip.loadmovie("pelicula.swf")
Loadmovienum carga las películas sobre la película principal, por lo tanto, si tienes contenido que sobreponga el contenido principal, la película que cargues lo hará y no te dejará navegar.

Si deseas publica algun pantallazo de lo que estás haciendo y normal te puedo ayudar.
Yo recomiendo, como todo el mundo, cargar swf externos en un movieclip.

Por antoniodoza

28 de clabLevel



 

firefox
Citar            
MensajeEscrito el 02 Jul 2010 09:29 am
Muchas Gracias por tu interes. Te explico lo que estoy haciendo. Tengo un index.swf, con varios apartados, algunos están en el mismo archivo, esos funcionan bien, pero otros por tener un tamaño mayor los he llevado a varios swf externos. Ejemplo Exteriores.swf. En el index.swf tengo un boton con este código:

on(release){
clip_mc = this.createEmptyMovieClip("contenedor", 1);
clip_mc.loadMovie("exteriores.swf");
this.onEnterFrame = function() {
if (clip_mc.getBytesLoaded() != 0 && clip_mc.getBytesLoaded() == clip_mc.getBytesTotal());
clip_mc.gotoAndStop(2);//aquí va el número del frame dode se quiere ir
delete this.onEnterFrame;
};
}

El cual me lleva al archivo exteriroes.swf y al frame 2. Todo esto funciona bien, pero el problema es que el index.swf sigue por debajo y al mover el mouse los botones del index.swfd están activos. Si prefieres te puedo enviar imágenes o darte la direccion donde tengo la página para que lo veas. Gracias otra vez, espero haberme explicado.

Por havivi150

3 de clabLevel



 

msie8
Citar            
MensajeEscrito el 02 Jul 2010 09:26 pm
claro, seria genial si me lo graficas para poder ayudarte mejor...
pero hasta ahora lo que veo es que tu pelicula exteriores.swf sobrepone al index
envez de crear un movieclip vacio llamado contenedor, porque no lo creas en el mismo flash, es decir sin código.
Ese movieclip lo creas en un layer mas abajo que los botones y todo el contenido que mencionas que se sobrepone. O si deseas lo creas por encima de los botones y tendrás como resultado que la pelicula cargada está sobrepuesta.

Layer1. movieclip vacio ---------> si lo cargas acá, todo el contenido a se sobre pondrá a lo inferior.
Layer2. botones del index
Layer3. etc ...

O en todo caso, si deseas que los botones se desactiven, puedes poner boton.enabled= flase; siendo "boton" el nombre que le hayas puesto al botón.

Espero haber ayudado un poco, no hay problema, me avisas y puedo explicar con mas calma.

Por antoniodoza

28 de clabLevel



 

firefox
Citar            
MensajeEscrito el 05 Jul 2010 09:49 am
Hola antoniodoza, gracias de nuevo. He hecho dos ficheros nuevos de prueba y les he añadido el MC vacio, pero no consigo nada. Me queda igual uno sobre otro. Te he preparado los dos ficheros swf resultantes para que veas lo que me sucede.
Realmente no sé que estoy haciendo mal.
No sé como enviarte los dos ficheros swf para que puedas verlos.
Un saludo

Por havivi150

3 de clabLevel



 

msie8
Citar            
MensajeEscrito el 08 Jul 2010 11:49 pm
Sigo probando y he llegado hasta este punto. Si al boton del index.swf le pongo,
on(release){
loadMovie("exteriores.swf",0);
this.onEnterFrame = function() {
if (getBytesLoaded() != 0 && getBytesLoaded() == getBytesTotal()) {;
gotoAndStop(2);
delete this.onEnterFrame;
}
};
}
Entonces ya no se me dibuja un swf sobre el otro, pero siempre me lleva el frame 1 de casa swf ignora el goto.
Pero si pongo esto,
on(release){
clip_mc = this.createEmptyMovieClip("contenedor", 1);
clip_mc.loadMovie("exteriores.swf");
this.onEnterFrame = function() {
if (clip_mc.getBytesLoaded() != 0 && clip_mc.getBytesLoaded() == clip_mc.getBytesTotal()) {;
clip_mc.gotoAndStop(2);
delete this.onEnterFrame;
}
};
}
Entonces si me funciona el que me lleve a un frame concreto, pero me dibuja un swf sobre el otro.
¿Puedo modificar o combinar ambos AS para que funcione todo bien?. Alguna idea?.Gracias

Por havivi150

3 de clabLevel



 

msie8
Citar            
MensajeEscrito el 09 Jul 2010 01:44 pm
Hola havivi150 yo tengo el mismo problema pero uso este codigo

Código ActionScript :

//precarga 
function preloadMovie(clip, url)  {   
clip.loadMovie(url);   
onEnterFrame = function()  {   
clip._visible = false;   
clip.stop();   
if(clip.getBytesTotal() <= 5) return false;   
if(clip.getBytesLoaded() < clip.getBytesTotal()) return false;   
delete onEnterFrame;   
clip._visible = true;  
clip.play();   
trace("end preload");   
onEndPreload(clip);   
}  
}    
//comprobar si el fotograma actual = ultimo fotograma del clip   
function checkLastFrame(clip)  {   
onEnterFrame = function()  {   
//llamada a función cuando ha llegado al último frame   
if(clip._currentframe == clip._totalframes)  {
   trace("end last frame: "+ clip._totalframes);   
delete onEnterFrame;   
onClipLastFrame(clip);   
}  
}  
}    
//cargar swf externo   
function cargaExterno(url)  {
//crea un nuevo clip para cargar el swf en el.   
createEmptyMovieClip("externo_mc",10);   
//cuando acabe de cargar, que comience a comprobar el fotograma.   
onEndPreload = function()  {   
turno = (turno + 1 == swf_array.length? 0 : turno + 1);   
onClipLastFrame = function(){  
cargaExterno(swf_array[turno]);  
}
checkLastFrame(externo_mc);   
}   
//realiza la precarga  
preloadMovie(externo_mc, url);   
}    
//archivos a cargar   
swf_array = ["movie1.swf","movie2.swf","movie3.swf"];   
//turno actual   
turno = 0;   
//cargar primer swf   
cargaExterno(swf_array[turno]);


te lo paso haber si tu puedes hacerlo funcionar ya que yo no puedo. mi problema es que to no necesito botones que lo llamen necesito que sea un recorrido de cada uno de estos swf que cuando se terminen se cargue el siguiente sin que se utilice un boton es como una carga aleatoria pero para swf con diferentes tiempos de animacion entre ellos. espero que te sirva y me avisas como le arreglaste el codigo se supone que todo esto va en un key frame vacio como todos los AS y su mc en otro frame.

Espero que te sirva

Gracias de antemano por pasarme la solucion

Por Battosai666

89 de clabLevel



 

Mexico

msie8
Citar            
MensajeEscrito el 13 Jul 2010 02:43 pm
a ver mandame un mp con tu correo para que me mandes los archivos, a ver si te puedo ayudar...
creo que te estas complicando mucho, cuando la cosa es mas sencilla.
saludos

Por antoniodoza

28 de clabLevel



 

firefox
Citar            
MensajeEscrito el 14 Jul 2010 12:05 am
Battosai666, gracias por tu correo, pero tengo poca idea de AS, y lo que veo lo que me mandas es más complejo aún que lo que yo tengo, y la verdad no sé por donde cojerlo. Gracias de todas formas.

Por havivi150

3 de clabLevel



 

msie8
Citar            
MensajeEscrito el 15 Jul 2010 07:29 pm
Gracias, Antonidoza.
Con tus explicaciones y las correciones que me enviaste por correo se ha solucionado. Ahora mismo ya me funciona. Voy a segir avanzado la página, y si tengo algún problema volvere a consultar al foro.
Saludos y agradecimientos tambien al foro y resto de participantes.

Por havivi150

3 de clabLevel



 

msie8

 

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