Comunidad de diseño web y desarrollo en internet online

Problemilla con Switch

Citar            
MensajeEscrito el 27 Mar 2009 01:49 pm
Hola a tod@s!!

No se que pasa pero cuando hago este switch me hace cosas raras.

Se trata de una galería de fotos, cuando pulso una de las galerías abre las miniaturas pero quiero que cambie el ancho de la miniatura principal llamada "mesk" para que cuando duplique ésta hereden el mismo _width el resto (mesk0, mesk1, mesk2...):

Código :


var num_fotos:Number = 0
num_fotos =  galeria_xml.firstChild.childNodes[num].childNodes.length // esto me dice el numero de fotos que contiene la galería que pulse y num de da el índice de la galería del botón que pulse.

switch (num_fotos) { 
case 0:
trace("no hay fotos")    
break;
             
case 1: 
mesk._width = 450 
trace("UNA fotos")
break;
             
case 2: 
mesk._width = 225
trace("DOS fotos")
break;
} // pongo solo dos casos para no alargar mucho.

var img:MovieClip = createEmptyMovieClip("imagen", getNextHighestDepth()); 
      
      for ( var e:Number = 0; e < 10; e++ ) 
      { 
         var container:MovieClip = createEmptyMovieClip("cont" + e, getNextHighestDepth()); 
         
         container._y = 150
         container._x = this["mesk"+e]._x -150 
         
         duplicateMovieClip(mesk, "mesk"+e, getNextHighestDepth()) // aqui los duplico
         
         this["mesk"]._x += this["mesk"]._width //aqui los distribullo en la pantalla
                 }



El resultado es que me modifica el tamaño de la que quiere jejejeje. También he probado con condicionales:

if(num_fotos = 1){ mesk._width = 450; }
if(num_fotos = 2){ mesk._width = 150; }
if(num_fotos = 3){ mesk._width = 112; }
pero me siempre el tamaño del último (en éste caso 112).

Ayuditaaaaa pliiiiiiiizzzzz :oops:

Por cotk

61 de clabLevel



 

safari
Citar            
MensajeEscrito el 27 Mar 2009 06:04 pm
para comparar se usan 2 iguales

Código ActionScript :

if(num_fotos == 1){ mesk._width = 450; }

a parte si quieres hacer la comparación de la misma variable usa else if

Código ActionScript :

if(num_fotos == 1){ mesk._width = 450; }
else if(num_fotos == 2){ mesk._width = 150; }
else if(num_fotos == 3){ mesk._width = 112; }

en la ultima linea no es this["mesk"+e]

Por nasho

Claber

908 de clabLevel

1 tutorial

Genero:Masculino  

Web Developer

firefox
Citar            
MensajeEscrito el 30 Mar 2009 09:18 am
Oks! bien, voy a probarlo y te cuento. Muchas gracias!

Por cotk

61 de clabLevel



 

safari
Citar            
MensajeEscrito el 30 Mar 2009 10:23 am
Hola!

Gracias por contestar.
El caso es que ya he probado con lo que me comentas y el resultado es que poniendo un condicional para cada caso, me coge siempre uno de ellos y el resto es como si no existieran:

Código :

if(num_fotos == 1){ mesk._width = 225; }
else if (num_fotos == 2){ mesk._width = 150; }
.
.
.
etc..


De ahí mi idea de hacerlo con un switch pero el resultado es mas o menos el mismo. :shock:

Por cotk

61 de clabLevel



 

safari
Citar            
MensajeEscrito el 30 Mar 2009 03:19 pm
el switch seria

Código ActionScript :

switch (num_fotos) { 
           
case 1: 
mesk._width = 450; 
trace("UNA foto");
break;
             
case 2: 
mesk._width =150;
trace("DOS fotos");
break;

defaul:
trace("no hay fotos");
break;
} 

Por nasho

Claber

908 de clabLevel

1 tutorial

Genero:Masculino  

Web Developer

firefox
Citar            
MensajeEscrito el 30 Mar 2009 03:19 pm
*default jeje :P

Por nasho

Claber

908 de clabLevel

1 tutorial

Genero:Masculino  

Web Developer

firefox
Citar            
MensajeEscrito el 31 Mar 2009 09:58 am
Hola tio!
Gracias por contestar. He probado como me comentas y nada, no sale.
Lo que he probado ahora es una función que haga la redimension de los objetos:

Código :

function redim_img (variable:Number, tamanho:Number){
   
   var res:Number
      
   if(variable == 2){ 
   res = tamanho * 5
   mesk._width = res
   trace (mesk._width)
   
   }else if(variable == 3){ 
   res = tamanho * 3
   mesk._width = res
   trace (mesk._width)
   
   }


Esto es la función y aquí la ejecuto:

Código :

      var num_fotos:Number
      var tam:Number
      tam = 45
      num_fotos =  noticias_xml.firstChild.childNodes[num].childNodes.length
      
      redim_img(num_fotos, tam);


En definitiva la intención es que dependiendo del número de fotos que haya en el XML me expanda el _width de las miniaturas hasta un total de 450px. Dentro de estos 450 px deben de entrar el número de fotos que tenga la galería en la que pinche, si por ejemplo hay dos fotos: el _width de cada miniatura sería de 225px. Si por ejemplo hay 3: cada thumb tendría 150px de ancho.

En fin, no se que es lo que pasa, incluso haciendo el trace(mesk._width) me devuelve el ancho correctamente pero no me modifica el _width del objeto, se queda siempre a 45 de ancho.

Ayudaaaaaaaaaaa

Por cotk

61 de clabLevel



 

safari
Citar            
MensajeEscrito el 31 Mar 2009 01:07 pm
Sigo probando pero nada, ¿podría ser el lugar del código donde llamo a la funcion?.
Es que depende de donde lo haga se comporta de una manera u otra, nose que puede ser

Por cotk

61 de clabLevel



 

safari
Citar            
MensajeEscrito el 31 Mar 2009 03:25 pm
mmm y algo como

Código ActionScript :

var num_fotos:Number;
var tam:Number = 450;
var tamFoto:Number;
num_fotos =  noticias_xml.firstChild.childNodes[num].childNodes.length;

tamFoto = tam/num_fotos;

//y le pones a cada foto 
foto._width = tamFoto;

Por nasho

Claber

908 de clabLevel

1 tutorial

Genero:Masculino  

Web Developer

firefox
Citar            
MensajeEscrito el 01 Abr 2009 08:18 am
Holaaa!
Puf tio no se que carajo pasa pero no redimensiona :S

El caso es que si pruebo con esto:

Código :

if (num_fotos = 2){ mesk._width = 250;  }
else if (num_fotos = 3){ mesk._width = 250;  }


Quitandole un "=" para comparar los valores si me redimensiona los MC pero con el inconveniente de que sólo entra en uno de los condicionales (normalmente el primero de ellos) discriminando al resto, como si no existieran.

Buaaaaaaaaaaaah :shock:
Ayuuuuudaaaaaaaaaaa :cry:

Por cotk

61 de clabLevel



 

safari
Citar            
MensajeEscrito el 01 Abr 2009 03:24 pm
aqui te dejo un ejemplo que hice con el último código que te dí, espero te sirva.

Por nasho

Claber

908 de clabLevel

1 tutorial

Genero:Masculino  

Web Developer

firefox

 

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