Comunidad de diseño web y desarrollo en internet online

Como cargar el ultimo frame de un swf externo.

Citar            
MensajeEscrito el 11 May 2011 06:08 pm
Hola, he estado intentando de muchas maneras de fuentes de este foro pero no logro solucionar mi necesidad. estoy realizando un producto para web que tiene una animacion larga, por cuestion de pesos tuve que fragmentarla en varios archivos swf, siguiendo hacia adelante no hay problema pues cada que termina uno llama por loadmovie al siguiente fragento, pero necesito colocar botones al final de cada uno que permita devolverse al fragmento anterior, pero exactamente en el frame donde termina..

me hice entender?, necesito que un boton dentro de un swf me cargue otro swf en el ultimo frame. para que la animacion tenga conexion..

saludos, y gracias de antemano.

Por loeguardo

11 de clabLevel



 

firefox
Citar            
MensajeEscrito el 11 May 2011 08:36 pm
Cuando haces el 'loadMovie', la pelicula dispara un evento informandote que ya ha cargado. En ese momento puedes decirle que se dirija hacia el ultimo frame, creo que _totalFrames te funcionara.
Algo como:

Código ActionScript :

gotoAndStop(_totalFrames);

No estoy seguro de la sintaxis, no he usado AS1 desde hace mucho! (prueba 'totalframes' o '_totalframes').

Por Acreonte

Claber

1543 de clabLevel

5 tutoriales
6 articulos

Genero:Masculino  

Digital Scientist

firefox
Citar            
MensajeEscrito el 11 May 2011 09:01 pm
es as2, voy a intentarlo.

esta es la accion del boton que necesito que me cargue el swf en el ultimo frame

on (press) {loadMovie("primero.swf",0);

}

Por loeguardo

11 de clabLevel



 

firefox
Citar            
MensajeEscrito el 11 May 2011 09:29 pm
Es AS1, pero bueno, llamalo como quieras ;)

Necesitas agregar un preloader. Busca info sobre preloaders (o precarga) y adaptalo para agregar la linea de codigo que te mencione.

Por Acreonte

Claber

1543 de clabLevel

5 tutoriales
6 articulos

Genero:Masculino  

Digital Scientist

firefox
Citar            
MensajeEscrito el 11 May 2011 09:59 pm
entonces agrego el preloader y el codigo asi?:

on (press) {loadMovie("primero.swf",0);
gotoAndStop(_totalFrames);
}

Por loeguardo

11 de clabLevel



 

firefox
Citar            
MensajeEscrito el 11 May 2011 10:16 pm
nada, no me funciona..

Por loeguardo

11 de clabLevel



 

firefox
Citar            
MensajeEscrito el 11 May 2011 10:43 pm
aqui subi los dos swf de ejemplo primero.swf y segundo.swf
http://www.grupovisuallab.com/pruebas/primero.swf

cuando ingreses al segundo swf presionas la flecha izquierda del teclado hasta llegar al boton que dice que me lleve al ultimo frame del anterior swf. http://l4c.me/fullsize/imagenboton-1305153581.jpg

Por loeguardo

11 de clabLevel



 

firefox
Citar            
MensajeEscrito el 12 May 2011 08:54 am
Obviamente no has buscado info sobre preloaders. :(

Por cierto, parece que el codigo que escribi no esta bien y en muchos ejemplos de preloaders veras como se escribe totalframes.

No puedes llamar directamente al fotograma que quieras ir a menos que tu pelicula este cargada completamente. Por eso te mencione el preloader. Por favor, busca info y nos cuentas como te va.

Por Acreonte

Claber

1543 de clabLevel

5 tutoriales
6 articulos

Genero:Masculino  

Digital Scientist

firefox
Citar            
MensajeEscrito el 12 May 2011 02:41 pm
nuevamente gracias por tu respuesta, el archivo al cual estoy llamando ya tiene preloader (ver codigo). igual la carga no creo que sea tan indispensable porque en el momento que voy a llamarlo ya ha sido cargado en su momeno porque lo que necesito es devolverme a el (swf1) pero que se quede en el ultimo frame sin mostrar el comienzo, mira este grafico para que quede mas claro.

Código ActionScript :

//creamos la función preloader
function preloader() {

//declaramos las variables
   var total, cargados, porcentaje;

//obtenemos el peso total en bytes de nuestro archivo
   total = _root.getBytesTotal();

//obtenemos los bytes cargados hasta el momento
   cargados = _root.getBytesLoaded();

//calculamos el porcentaje completado respecto del total
   porcentaje = Math.floor((cargados*100)/total);

//mostramos por pantalla el porcentaje
   porcentaje_txt.text = porcentaje + " %";

//paramos las animación barra para que no se reproduzca contÃ#nuamente
   barra.gotoAndStop(porcentaje);

//comprovamos  si el archivo está totalmente cargado
   if (cargados == total) {

//si es asÃ#, no sigas ejecutando el preloader
      clearInterval(Precarga);

//y sigue reproduciendo la movie
      play();
   }
}

//setInterval sirve para ejecutar la función "preloader" cada milisegundo y le damos un nombre, es decir, la asignamos a la variable Precarga para después poder detenerla con clearInterval
var Precarga = setInterval(preloader, 1);

//evitamos que nuestra movie avance y reproduzca todas las escenas. asÃ# le obligamos a permanecer en la escena 1 hasta que se haya cargado completamente la movie.
stop();

Por loeguardo

11 de clabLevel



 

firefox
Citar            
MensajeEscrito el 12 May 2011 03:37 pm
Entendi tu problema desde tu primer post ;)

Código ActionScript :

function preloader() { 
   var total, cargados, porcentaje; 
   total = _root.getBytesTotal();  
   cargados = _root.getBytesLoaded(); 
   porcentaje = Math.floor((cargados*100)/total); 
   porcentaje_txt.text = porcentaje + " %"; 
   barra.gotoAndStop(porcentaje); 
 
   if (cargados == total) { 
 
      clearInterval(Precarga); 
      //aca debemos informarle a la pelicula madre que esta pelicula ya ha cargado
      //play(); 
   } 
} 

Personalmente haria el preloader del lado de la pelicula madre. Si te interesa, busca info sobre preloaders. Sino, tendras que escuchar de alguna forma en la pelicula madre por ese mensaje que se enviara cuando la condicion 'cargados==total' se cumpla y luego hacer lo que te mencione:

Código ActionScript :

gotoAndStop(_totalframes); 

Podria ser al revez tambien, enviar un parametro a tu pelicula cuando la cargas, diciendole que se dirija hacia el ultimo frame.
Algo como:

Código ActionScript :

_level0.isRetroceso = true;

y en tu pelicula que cargas:

Código ActionScript :

 if (cargados == total) { 
 
      clearInterval(Precarga); 
      if(esRetroceso) {
        gotoAndStop(utlimoFotograma);
      } else {
        play();
      } 
   } 

Por Acreonte

Claber

1543 de clabLevel

5 tutoriales
6 articulos

Genero:Masculino  

Digital Scientist

firefox
Citar            
MensajeEscrito el 12 May 2011 04:41 pm
upss, voy a estudiar tu info, y les cuento, si quieres podria enviarte el .fla, Digo si no es mucho atrevimiento, ya que llevo 2 dias sin solucionar este problema. y ya me tiene un poco desesperado.. anoche logre que el swf se cagara en el ultimo frame colocando al inicio de este un goto "final" a una etiqueta,, pero lo malo es que siempre que llamen ese archivo iria al final,, necesito que en un caso se vaya al inicio y en el otro caso al final..

saludos

Por loeguardo

11 de clabLevel



 

firefox
Citar            
MensajeEscrito el 13 May 2011 04:01 pm
gracias Acreonte, tu explicación me ha servido de mucho a mi!!!!

animo loeguardo, y metele a "descular" Preloaders, porque es fundamental en el mundo AS

Por PrimoSaviSan

56 de clabLevel



 

firefox

 

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