Comunidad de diseño web y desarrollo en internet online

Un sólo botón... varios swf externos...

Citar            
MensajeEscrito el 05 Ago 2009 04:20 pm
Hola! quería saber la manera que usando un mismo botón cada vez que se le haga clic pase al siguiente swf externo
cómo puedo hacer?

Gracias de antemano.

Por lhriel

45 de clabLevel



 

firefox
Citar            
MensajeEscrito el 05 Ago 2009 04:21 pm
me olvidaba.. dicho botón se encuentra en el flash maestro que va a llamar a los swf externos

Por lhriel

45 de clabLevel



 

firefox
Citar            
MensajeEscrito el 05 Ago 2009 07:46 pm
La forma correcta de hacer esto, es mediante un Array (matriz) , y luego recorrerlo sacando de el las rutas hacia los swf externos.
La forma de hacer esto sería de la siguiente manera:

Código ActionScript :

//Creas el Array en el que iran las rutas de los swf
var externos:Array=new Array (["1.swf"],["2.swf"],["3.swf"],["4.swf"]);

//Esta variable te ayudara a recorrer el array
var n:Number=0;

//Luego cargas el primer swf del array, para que cuando se ejecute la aplicacion se carge
clipvacio.loadClip(externos[n]);

//Luego se programan ambos botones, con un IF para que la variable n, no supere nunca al largo de la matriz
btn_next.onPress = function() {
   n++;
   if(n>externos.length-1){
      n=0;
   }
   clipvacio.loadClip(externos[n]);
}
btn_prev.onPress = function() {
   n--;
   if(n<0){
      n=0;
   }
   clipvacio.loadClip(externos[n]);
};


Probalo, avisame cualquier duda si no te ah funcionado.
atte. Patrol

Por Patrol

80 de clabLevel



Genero:Masculino  

Diseñador web.

firefox
Citar            
MensajeEscrito el 05 Ago 2009 08:37 pm
Hola Patrol, antes que nada gracias por contestar... mi nivel de flash es demasiado básico para esa solución, voy a tener que buscar una alternativa...

Muchas gracias


Romina

Por lhriel

45 de clabLevel



 

firefox
Citar            
MensajeEscrito el 05 Ago 2009 08:52 pm
Es cuestion de intentar hacerlo, para seguir aprendiendo.
Lo que debes modificar es la linea en la que se crea el array, cambiando las rutas ["1.swf"],["2.swf"],["3.swf"],["4.swf"], por las rutas de tus swf externos, siempre manteniendo esa forma de ingresarlos por ej: ["a.swf"],["b.swf"],["c.swf"],["d.swf"].
Luego insertar un movieClip vacio en el escenario. Y darle como nombre de instancia "clipvacio". Para insertar un movieClip vacio debes ir a isertar, nuevo simbolo. Te va aparecer en la biblioteca, lo arrastras hasta el escenario, en el lugar donde desees que se cargen los movieClips. Luego cliqueas sobre el, y le das de nombre de instancia "clipvacio".
Luego debes crear dos botones, uno para llamar al siguiente swf y otro al anterior swf. A cada boton le debes dar de nombre de instancia "btn_prev" (para el que retrocede) y "btn_next (para el que avanza)".
Si de deseas hacer esto con un solo boton, debes borrar lo que esta despues del comentario //Luego se programan....
Por el siguiente codigo:

Código ActionScript :

boton.onPress = function(){
    if(n>externos.length-1){
 n = 0;
clipvacio.loadClip(externos[n])}else{
n++;
clipvacio.loadClip(externos[n]);
}
}

Por Patrol

80 de clabLevel



Genero:Masculino  

Diseñador web.

firefox
Citar            
MensajeEscrito el 05 Ago 2009 09:48 pm
No entiendo eso del array... lo demás está claro

Por lhriel

45 de clabLevel



 

firefox
Citar            
MensajeEscrito el 05 Ago 2009 09:56 pm
¿Qué es un Array?
Un array (o matriz, como también son llamados) es un tipo de variable, con la singularidad de que no contiene un único valor, sino un conjunto de valores referenciados con un índice.
Osea es una variable en la que se almacenan multiples valores.
En tu caso, sera una variable que almacena cada uno de los nombres de los swf externos.
Es por ello que debes de modificar las rutas ["1.swf"],["2.swf"],["3.swf"],["4.swf"] por los nombres de tus swf s externos.

Por Patrol

80 de clabLevel



Genero:Masculino  

Diseñador web.

firefox
Citar            
MensajeEscrito el 05 Ago 2009 10:02 pm
a mis swf externos les puse 1, 2, 3 y 4...
hice una capa en el escenario y puse el código:

var externos:Array=new Array (["1.swf"],["2.swf"],["3.swf"],["4.swf"]);

//Esta variable te ayudara a recorrer el array
var n:Number=0;

//Luego cargas el primer swf del array, para que cuando se ejecute la aplicacion se carge
clipvacio.loadClip(externos[n]);

//Luego se programan ambos botones, con un IF para que la variable n, no supere nunca al largo de la matriz
btn_next.onPress = function() {
n++;
if(n>externos.length-1){
n=0;
}
clipvacio.loadClip(externos[n]);
}
btn_prev.onPress = function() {
n--;
if(n<0){
n=0;
}
clipvacio.loadClip(externos[n]);
};



----


Creé los dos botones y les puse los nombres, también el movieclip vacío... qué es lo que falla?

Por lhriel

45 de clabLevel



 

firefox
Citar            
MensajeEscrito el 05 Ago 2009 10:04 pm
o el código lo tengo que poner en el movieclip vacío?

Por lhriel

45 de clabLevel



 

firefox
Citar            
MensajeEscrito el 05 Ago 2009 10:08 pm
Huuu el error es mio, perdon.
Debes utilizar loadMovie, no loadClip.
Fijate de cambiar el loadClip por loadMovie en cada linea que aparezca y veras que funciona.

Código ActionScript :

clipvacio.loadMovie(externos[n]);


suerte!

Por Patrol

80 de clabLevel



Genero:Masculino  

Diseñador web.

firefox
Citar            
MensajeEscrito el 05 Ago 2009 10:10 pm
o el código lo tengo que poner en el movieclip vacío?

noooo, solo en una capa.

Por Patrol

80 de clabLevel



Genero:Masculino  

Diseñador web.

firefox
Citar            
MensajeEscrito el 05 Ago 2009 10:11 pm
GRACIAS!!!!! Funcionó perfecto!! soy felíz jajaj

muchisimas gracias!

Por lhriel

45 de clabLevel



 

firefox
Citar            
MensajeEscrito el 05 Ago 2009 10:15 pm
De nada!

Buena vida!

Adios!

Por Patrol

80 de clabLevel



Genero:Masculino  

Diseñador web.

firefox
Citar            
MensajeEscrito el 07 Ago 2009 01:37 pm
Pst... Patrol.. estás por ahí? jajaj
tengo otra consultilla, ese array trae las películas en el nivel 0 no? Cómo puedo hacer para que queden en nivel 1 asi les puedo hacer un unload movie desde otra botonera???

Saludos

Romina

Por lhriel

45 de clabLevel



 

firefox
Citar            
MensajeEscrito el 07 Ago 2009 02:47 pm
Holla de nuevo !
Mira para hacer esto, deberias borrar el movie clip vacio creado en el escenario. Para luego crearlo por Action Script.
Osea, solo tienes que borrar el que creastes en el escenario, y añadir este codigo a tu action:

clipvacio = this.createEmptyMovieClip("clipvacio", 1) //creamos el movie, lo instanciamos y le demos level 1
clipvacio._x = 100; //posicion en x en la que aparecera dicho movie
clipvacio._y = 100;//posicion en y en la que aparecera dicho movie

Entonces tu codigo final quedara de la siguiente forma:

Código ActionScript :

clipvacio = this.createEmptyMovieClip("clipvacio", 1) //creamos el movie, lo instanciamos y le demos level 1
clipvacio._x = 100; //posicion en x en la que aparecera dicho movie
clipvacio._y = 100;//posicion en y en la que aparecera dicho movie

//Creas el Array en el que iran las rutas de los swf 
var externos:Array=new Array (["1.swf"],["2.swf"],["3.swf"],["4.swf"]); 
 
//Esta variable te ayudara a recorrer el array 
var n:Number=0; 
 
//Luego cargas el primer swf del array, para que cuando se ejecute la aplicacion se carge 
clipvacio.loadMovie(externos[n]); 
 
//Luego se programan ambos botones, con un IF para que la variable n, no supere nunca al largo de la matriz 
btn_next.onPress = function() { 
   n++; 
   if(n>externos.length-1){ 
      n=0; 
   } 
   clipvacio.loadMovie(externos[n]); 
} 
btn_prev.onPress = function() { 
   n--; 
   if(n<0){ 
      n=0; 
   } 
   clipvacio.loadMovie(externos[n]); 
};


Creo que eso te servira de ayuda! Suerte!

Por Patrol

80 de clabLevel



Genero:Masculino  

Diseñador web.

firefox
Citar            
MensajeEscrito el 07 Ago 2009 03:08 pm
Ok, funcionó perfecto, gracias.
Lo que no me funciona es el unloadmovie en ninguno de los casos :(

La otra botonera llama uno por uno los mismos swf mediante:
on(release){
loadmovieNum("1.swf",3);
}

etc..

Entonces en cada botón tengo que poner un unloadmovie y no me funciona.

Por lhriel

45 de clabLevel



 

firefox
Citar            
MensajeEscrito el 07 Ago 2009 03:17 pm
Mmmm no estoy entendiendo muy bien como funciona tu aplicacion, porque hay dos botoneras ? y por que trabajas por levels?
Cargando todo en el mismo level, se reemplazan los objetos, pero no logro entender que buscas hacer..

Por Patrol

80 de clabLevel



Genero:Masculino  

Diseñador web.

firefox
Citar            
MensajeEscrito el 07 Ago 2009 03:28 pm
Puse todo al mismo nivel ahora, pero no se reemplazan... es una botonera que va al swf específico y además están los botones prev y next. Eso me pidieron

Por lhriel

45 de clabLevel



 

firefox
Citar            
MensajeEscrito el 07 Ago 2009 03:41 pm
Y los unload para que los ulitilizas ?

Por Patrol

80 de clabLevel



Genero:Masculino  

Diseñador web.

firefox
Citar            
MensajeEscrito el 07 Ago 2009 03:43 pm
Para que no se superpongan, ya que si le doy clic a la botonera individial el swf se sobrepone al de los next/prev... se ven los dos.

Por lhriel

45 de clabLevel



 

firefox
Citar            
MensajeEscrito el 07 Ago 2009 03:49 pm
eso ocurre estando en un mismo nivel

Por lhriel

45 de clabLevel



 

firefox
Citar            
MensajeEscrito el 07 Ago 2009 04:01 pm
el unloadMovie lo puedes trabajar por nivel, por ende unloadMovie(level).

Por otra parte te recomiendo, que realices el siguiente tutorial de freddie, Precargas con Movie Clip Loaders. Es para AS 2.0. El AS 1.0 ya es viejito, te recomiendo que lo hagas y lo practiques, y veras los simple que es trabajar de esa manera, en AS 2.0

Por Patrol

80 de clabLevel



Genero:Masculino  

Diseñador web.

firefox
Citar            
MensajeEscrito el 07 Ago 2009 04:17 pm
Leí el tutorial pero aún no encuentro la solución.
Yo creo que desde la botonera tendría que llamar a un swf y verlo en el clip vacío, no sé si me explico.. pero no tengo idea cuál sería ese código..
Si les pongo btn_1, btn_2, etc..


btn_1.onPress = function() {
clipvacio.loadMovie(externos["1.swf"]);
}

algo asi???

Por lhriel

45 de clabLevel



 

firefox
Citar            
MensajeEscrito el 07 Ago 2009 05:24 pm
Si esa puede ser una solucion, pero tambien puedes utilizar loadMovieNum, que es una funcion que te carga en relacion a un nivel especifico, osea vos le decis en que nivel se tienen que cargar.

Código ActionScript :

loadMovieNum("ball.swf", 10);
//,10 es el nivel donde se va a cargar.

Este otro tutorial puede ayudarte tambien: http://foros.cristalab.com/loadmovie---loadmovienum-t15181/

Por Patrol

80 de clabLevel



Genero:Masculino  

Diseñador web.

firefox
Citar            
MensajeEscrito el 07 Ene 2012 04:03 am
ESTO MISMO PERO EN AS3 ?

Por jorgeluisp

7 de clabLevel



 

msie
Citar            
MensajeEscrito el 07 Ene 2012 04:04 am
BUEN DIA, ESTE MISMO SISTEMA EN AS3 POR FAVOR

Por jorgeluisp

7 de clabLevel



 

msie

 

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