Comunidad de diseño web y desarrollo en internet online

boton anterior/siguiente para llamar swf externos AS3

Citar            
MensajeEscrito el 26 Nov 2010 09:44 am
Hola,

A ver como me explico...
Estoy haciendo una web con un swf principal y un menu con varios botones. Uno de estos botones llama a un swf externo dentro del cual hay unos 15 botones que llaman cada uno a un swf externo.
Hasta allí bien.
Quiero agregar un boton anterior/siguiente para poder pasar al swf siguiente sin tener que volver a la pagina con los 15 botones.

Puse este codigo para los botones previous/next pero no pasa nada, tampoco me da error.




var swfList:Array = new Array("zekeye.swf", "belle.swf", "soleil.swf", "princesse.swf","sorciere.swf",
"geant.swf", "maina.swf", "djoudjou.swf", "larme.swf", "dodole.swf", "petit.swf",
"roimoi.swf", "roigrand.swf", "mortadelle.swf", "piouk.swf");
var i:Number = -1;

//where next button has an instance name of 'nextBtn'
nextBtn.addEventListener(MouseEvent.CLICK, nextbook);

function nextbook(event:MouseEvent):void
{
    i++;
    if(i > swfList.length - 1){
        i = 0;
    }
trace(swfList[i]);    //your load funtion here like loadMovieNum(swfList[i], 1); or instance name.loadMovie(swfList[i]);
}

//where previous button has an instance name of 'prevBtn'
prevBtn.addEventListener(MouseEvent.CLICK, previousbook);

function previousbook(event:MouseEvent):void
{
    i--;
    if(i < 0 ){
        i = swfList.length - 1;
    }
    trace(swfList[i]);
    //your load funtion here like loadMovieNum(swfList[i], 1); or instance name.loadMovie(swfList[i]);
}


A ver si alguien me puede decir donde esta el fallo,
Muchas gracias.

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

safari
Citar            
MensajeEscrito el 26 Nov 2010 01:49 pm
loadMovie ya no se usa en AS3, tienes que usar Loader.load pasándole un URLRequest ... ¿estás seguro que la galería que tienes es en AS3?

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 26 Nov 2010 02:21 pm
Hola Solisarg!

Gracias por tu respuesta!

Si si es en AS3....

A ver si me explico:

Tengo un swf "livres", dentro hay botones que me llevan al ultimo frame de la pelicula y que cargan su swf externo respectivo.
Esto funciona.

Ahora en este ultimo frame le quiero agregar un boton previous y next para poder pasar de un swf sin tener que volver
a cargar el swf "livres"


No se como hacerlo....

Voy buscando tutoriales sobre los arrays pero no encuentro la solución...


Aqui te dejo el codigo que tengo para llamar los swf independientemente:

var Xpos:Number = 0
var Ypos:Number = 0
var swf:MovieClip;
var loader:Loader=new Loader();


loader.x = Xpos;
loader.y = Ypos;
addChild(loader);

////////////////////////////////////////


//Btns Universal function
function btnClick(event:MouseEvent):void{

removeChild(loader);
gotoAndPlay("out")
var newSWFRequest:URLRequest=new URLRequest("swf/livres/" + event.target.name + ".swf");
loader.load(newSWFRequest);
loader.x = Xpos;
loader.y = Ypos;
addChild(loader);

}

// Btn listeners
issunboshi.addEventListener(MouseEvent.CLICK,btnClick);
belle.addEventListener(MouseEvent.CLICK,btnClick);
soleil.addEventListener(MouseEvent.CLICK,btnClick);
princesse.addEventListener(MouseEvent.CLICK,btnClick);
sorciere.addEventListener(MouseEvent.CLICK,btnClick);
geant.addEventListener(MouseEvent.CLICK,btnClick);
maina.addEventListener(MouseEvent.CLICK,btnClick);
djoudjou.addEventListener(MouseEvent.CLICK,btnClick);
larme.addEventListener(MouseEvent.CLICK,btnClick);
dodole.addEventListener(MouseEvent.CLICK,btnClick);
petit.addEventListener(MouseEvent.CLICK,btnClick);
roimoi.addEventListener(MouseEvent.CLICK,btnClick);
roigrand.addEventListener(MouseEvent.CLICK,btnClick);
mortadelle.addEventListener(MouseEvent.CLICK,btnClick);
piouk.addEventListener(MouseEvent.CLICK,btnClick);

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

safari
Citar            
MensajeEscrito el 26 Nov 2010 02:24 pm
No pongas mas código, pon el primero que pusiste en AS3 y pruébalo, si no anda vuelve con los errores que te dio

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 26 Nov 2010 02:43 pm
No entiendo lo que me dices...

los botones independientes y los botones "previous/next" están en distintos fotogramas.
No se ven juntos.

Este ultimo codigo esta en el fotograma de los botones necesario para visualisar los swf.

Y el primer codigo esta en el ultimo fotograma donde hay solo los botones previous/next.
No me da error al exportarlo a swf, sino que simplemente no pasa nada al cliquar encima de next o previous....


No se si me explico...

Gracias por tus respuestas!

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

safari
Citar            
MensajeEscrito el 26 Nov 2010 03:05 pm
creo que mi fallo es no poner un loader en los botones previous/next¿?
Me dijiste de poner un Load.load con Url Request pero no se donde ponerlo y que Url ya que los botones llaman al anterior o el siguiente swf...

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

safari
Citar            
MensajeEscrito el 26 Nov 2010 05:07 pm
La función que tienes se puede reutilizar, algo así:

Código ActionScript :

//en root
var current:Number = 0;

function cargarFoto(nr:Number):void{
   removeChild(loader);
   gotoAndPlay("out")
   if(nr>=0 && nr<(swfList.length - 1)){
      current = nr
      var newSWFRequest:URLRequest=new URLRequest("swf/livres/" + swfList[nr]);
      loader.load(newSWFRequest);
      loader.x = Xpos;
      loader.y = Ypos;
      addChild(loader);
   }
}
//boton siguiente
function nextbook(evt:MouseEvent){
   cargarFoto(current+1)
}
function prevbook(evt:MouseEvent){
   cargarFoto(current-1)
}


Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos



Ultima edición por solisarg el 27 Nov 2010 12:13 pm, editado 1 vez

Argentina

firefox
Citar            
MensajeEscrito el 26 Nov 2010 11:06 pm
Jorge!

Muchisimas gracias!!!

Eres un Crack!

Ahora esta casi, (no me lo puedo creer!) el next/previous funcionan CASI de maravilla!

Si llamo al primer swf, el boton next funciona pero el previous no (que sería el ultimo swf de la lista)
Pero si llamo al segundo swf, el boton next me lleva a este mismo swf y si vuelvo a cliquar entonces sí, me lleva al siguiente etc,
De allí el boton previous funciona hasta el segundo swf, del segundo swf no me lleva al primero.

No se que habré hecho mal...
No se si es una cuestión de numero, ya que el primer swf es equivalente a 0, y el segundo al 1....


Carole.

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

safari
Citar            
MensajeEscrito el 27 Nov 2010 12:21 pm
Ahora como está no es circular, simplemente no hace nada en los extremos, si quisieras que fuera circular en la función cargarFoto deberías modificar sacar el if y agregar esto:

Código ActionScript :

      current = nr 
      if(current<0) current = swfList.length - 1
       if(current>(swfList.length - 1)) current = 0


Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 27 Nov 2010 05:01 pm
Hola Jorge,

Muchas gracias por tu ayuda.

No me funcionan bien los enlaces... es decir que:
si al ultimo swf de lal array cliquo next me lleva al 2nd swf y no al primero.
si al primero le cliquo previous no pasa nada.
si voy al 3r swf y cliquo next me lleva al segundo swf y no al cuarto... y si cliquo previous no me encuentra el swf...

Voy a intentar seguir buscando.

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

safari
Citar            
MensajeEscrito el 27 Nov 2010 06:59 pm
Traza el valor de current y ve ajustando, no es tan complicado

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 27 Nov 2010 10:44 pm
....no hay manera!

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

safari
Citar            
MensajeEscrito el 28 Nov 2010 10:26 am
:crap: No se como hacer....

Lo que no entiendo es que porque a veces los botones previous/next funcionan y si vuelvo a pulsar no me lleva al swf correcto y si de nuevo vuelvo a pulsar entonces si lo hace bien...

No se si el problema viene de que se puede llamar los swfs mediante los botones de las miniaturas por un lado y mediante los botones next/previous.

Pffff.....

Dejo aqui el codigo donde tengo la funcion de cargar foto con la swflist que esta junto a la funccion de los botones de las miniaturas

[code]stop();


var Xpos:Number = 0
var Ypos:Number = 0
var swf:MovieClip;
var loader:Loader=new Loader();


loader.x = Xpos;
loader.y = Ypos;
addChild(loader);



////////////////////////////////////////


//Btns Universal function
function btnClick(event:MouseEvent):void{

removeChild(loader);
gotoAndPlay("out")
var newSWFRequest:URLRequest=new URLRequest("swf/livres/" + event.target.name + ".swf");
loader.load(newSWFRequest);
loader.x = Xpos;
loader.y = Ypos;
addChild(loader);

}

// Btn listeners
issunboshi.addEventListener(MouseEvent.CLICK,btnClick);
belle.addEventListener(MouseEvent.CLICK,btnClick);
soleil.addEventListener(MouseEvent.CLICK,btnClick);
princesse.addEventListener(MouseEvent.CLICK,btnClick);
sorciere.addEventListener(MouseEvent.CLICK,btnClick);
geant.addEventListener(MouseEvent.CLICK,btnClick);
maina.addEventListener(MouseEvent.CLICK,btnClick);
djoudjou.addEventListener(MouseEvent.CLICK,btnClick);
larme.addEventListener(MouseEvent.CLICK,btnClick);
dodole.addEventListener(MouseEvent.CLICK,btnClick);
petit.addEventListener(MouseEvent.CLICK,btnClick);
roimoi.addEventListener(MouseEvent.CLICK,btnClick);
roigrand.addEventListener(MouseEvent.CLICK,btnClick);
mortadelle.addEventListener(MouseEvent.CLICK,btnClick);
piouk.addEventListener(MouseEvent.CLICK,btnClick);



var swfList:Array = new Array("issunboshi.swf","belle.swf","soleil.swf","princesse.swf","sorciere.swf",
"geant.swf","maina.swf","djoudjou.swf","larme.swf","dodole.swf","petit.swf",
"roimoi.swf","roigrand.swf","mortadelle.swf","piouk.swf");

var current:Number = 0;

function cargarFoto(nr:Number):void{
removeChild(loader);
gotoAndPlay("out")
      current = nr 
if(current<0) current = swfList.length - 1 
       if(current>(swfList.length - 1)) current = 0 
var newSWFRequest:URLRequest=new URLRequest("swf/livres/" + swfList[nr]);
loader.load(newSWFRequest);
loader.x = Xpos;
loader.y = Ypos;
addChild(loader);
}

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

safari
Citar            
MensajeEscrito el 28 Nov 2010 10:33 am
Y aqui el código de los botones next y previous que están en otro frame:


Código :

stop();


//where next button has an instance name of 'nextBtn' 
nextBtn.addEventListener(MouseEvent.CLICK, nextbook); 

function nextbook(evt:MouseEvent){ 
   cargarFoto(current+1) 
} 

//where previous button has an instance name of 'prevBtn' 
prevBtn.addEventListener(MouseEvent.CLICK, prevbook); 

function prevbook(evt:MouseEvent){ 
   cargarFoto(current-1) 
} 



Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

safari
Citar            
MensajeEscrito el 30 Nov 2010 09:38 pm
Bueno ya esta! Vuelvo a respirar!!! :cool:

El codigo correcto para que haga un loop en lista de array es este,
por si alguien se encuentra en la misma situación...

Código ActionScript :

function cargarFoto(nr:Number):void {
    current = nr;
    trace(nr+" current: "+current);
    if (current <= 0) {
        current = swfList.length - 1;
    };
    if(current >(swfList.length- 1)){;
        current = 0;
    };
    trace("current (fixed) : "+current);

Por CLAnonimo

Claber

600 de clabLevel

5 tutoriales
1 articulo

 

Este es un usuario anónimo genérico para las cuentas borradas o perdidas.

safari

 

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