Comunidad de diseño web y desarrollo en internet online

colocar condicional if dentro de un switch

Citar            
MensajeEscrito el 20 Jul 2012 01:53 pm
bueno, el caso es el siguiente...

ayer buscaba un código para realizar una función, la cual era ir a otro fotograma, siempre y cuando un selector estuviese junto al titulo de la sección que quería visitar...

entonces, lo logre con esto:

Código ActionScript :

btn_ok.addEventListener (MouseEvent.CLICK, entrar);
function entrar (event:MouseEvent): void{
if(selector.y==214) gotoAndPlay(1)
}


la cosa es que debo hacerlo con varios titulos... entonces tenia algo asi:

Código ActionScript :

btn_ok.addEventListener (MouseEvent.CLICK, entrar);
function entrar (event:MouseEvent): void{
if(selector.y==214) gotoAndPlay(1)
}

btn_ok.addEventListener (MouseEvent.CLICK, entrar2);
function entrar2 (event:MouseEvent): void{
if(selector.y==239) gotoAndPlay(36)
}

btn_ok.addEventListener (MouseEvent.CLICK, entrar3);
function entrar3 (event:MouseEvent): void{
if(selector.y==264) gotoAndPlay(57)
}


y luego, para no repetir las funciones, y cambiarles de nombre... quise dar el salto (ya que soy principiante con el código... y ocupar la condicional switch... que encontré en un post de cristalab... y quedo algo asi: (nota:es una adaptación al código que encontré)

Código ActionScript :

btn_ok.addEventListener (MouseEvent.CLICK, entrar);

function entrar(e:Event): void

{
   switch (SimpleButton (e.target))
   {
      case boton_ok:
      if(selector.y==214) gotoAndPlay(1)
      
      case boton_ok:
      if(selector.y==239) gotoAndPlay(36)
      
      case boton_ok:
      if(selector.y==264) gotoAndPlay(57)
   }
}


pero al probar el código me dice el siguiente error: 1120: Acceso a una propiedad boton_ok no definida.
como debiese redactar esta parte.. va primero la condicional, o el gotoAndPlay??? o no debiese ir asi, y repito las funciones???

Muchas Gracias!!!

Por clansman_21

6 de clabLevel



 

Diseñador Grafico

chrome
Citar            
MensajeEscrito el 20 Jul 2012 06:31 pm
seria asi man:

Código ActionScript :

btn_ok.addEventListener (MouseEvent.CLICK, entrar);

function entrar(e:Event): void

{
   switch (SimpleButton (e.target).y)
   {
      case 214:
               gotoAndPlay(1);
               break;
      case 239:
               gotoAndPlay(36);
               break;      
      case 264:
               gotoAndPlay(57);
               break;
   }
}



Suerte


eXe

Por exekiel21

Claber

164 de clabLevel



Genero:Masculino  

programador

chrome
Citar            
MensajeEscrito el 20 Jul 2012 06:49 pm
exekiel21: no me funco... apretaba ok, y no pasaba nada...

estas seguro que no debe colocarse la condicionante if????

gracias por tu ayuda....

Por clansman_21

6 de clabLevel



 

Diseñador Grafico

chrome
Citar            
MensajeEscrito el 23 Jul 2012 12:53 pm
me di cuenta que arrastre un error tuyo en el codigo que pase:

Código ActionScript :

btn_ok.addEventListener (MouseEvent.CLICK, entrar);

function entrar(e:MouseEvent): void //antes decia e:Event

{
   switch (SimpleButton (e.target).y)
   {
      case 214:
               gotoAndPlay(1);
               break;
      case 239:
               gotoAndPlay(36);
               break;      
      case 264:
               gotoAndPlay(57);
               break;
   }
}


Saludos


eXe

Por exekiel21

Claber

164 de clabLevel



Genero:Masculino  

programador

chrome
Citar            
MensajeEscrito el 23 Jul 2012 01:27 pm
por alguna razón no funca... veo las modificaciones... pero no funciono, gracias por tu ayuda, y si puedes seguir ayudandome, te lo agradecería.

Por clansman_21

6 de clabLevel



 

Diseñador Grafico

chrome
Citar            
MensajeEscrito el 23 Jul 2012 04:11 pm
Mejor conta lo que necesitas hacer y que tenes hecho en el fla


eXe

Por exekiel21

Claber

164 de clabLevel



Genero:Masculino  

programador

chrome
Citar            
MensajeEscrito el 23 Jul 2012 04:24 pm
mira... justo cuando me respondiste esto, se me presento otro conflicto igual con el famoso "switch"...

la cosa es que tengo una aplicacion air para android, (es una tablet), donde tengo 2 botones que hacer que un "selector" suba y baje cada 25 px y se posicione junto a un item de un menu...

y cuando el selector esta frente al item que quiero ver, apreto el "boton ok" y este aparece (con una función de gotoAndPlay... a todo esto, no se si es lo mas recomendado..)

la cosa es que por el momento me funciona, pero con las funciones repetidas... entrar, entrar2, entrar3.. etc. (cosa de evitar la funcion duplicada)

ojala se entienda.

y de paso te pregunto mi ultima duda que tiene que ver mucho con esto...

dentro de esta "aplicación" tengo una galeria de foto (tambien hecha a base de gotoAndPlay.. osea, que un boton me manda a tal fotograma, y se visualiza la foto... son 10 botones y 10 fotos..) y tambien quiero hacerlo como switch y tampoco me funciona, me envía un error algo como esto:

Error #1034: Type Coercion failed: cannot convert flash.display::SimpleButton@d995281 to flash.display.MovieClip.

si me das tu correo por alguna linea interna te envio el fla, para que lo veas, y me digas que puedo hacer (no quiero abusar, pero quiero que entindas bienlo que quiero hacer...)

Millones de gracias!!!

Por clansman_21

6 de clabLevel



 

Diseñador Grafico

chrome
Citar            
MensajeEscrito el 23 Jul 2012 04:56 pm

Código ActionScript :

btn_ok.addEventListener (MouseEvent.CLICK, entrar);

function entrar(e:MouseEvent): void //antes decia e:Event

{
   switch (selector.y)
   {
      case 214:
               gotoAndPlay(1);
               break;
      case 239:
               gotoAndPlay(36);
               break;      
      case 264:
               gotoAndPlay(57);
               break;
   }
}


Ahi corregi de nuevo el codigo que te pase. Yo crei q dependia de la posicion en y del btn_ok. Pero vi que necesitas que dependa de la posion y del selector.

Con respecto al tema de la galeria, mostra el codigo q utilizas.


Saludos


eXe

Por exekiel21

Claber

164 de clabLevel



Genero:Masculino  

programador

chrome
Citar            
MensajeEscrito el 23 Jul 2012 05:19 pm
genio!!!! funciona!!!!!

para la galería hice esto...

action script

btn_pala.addEventListener(MouseEvent.CLICK, release);
btn_petroleo.addEventListener(MouseEvent.CLICK, release);
btn_pesca.addEventListener(MouseEvent.CLICK, release);
btn_grua.addEventListener(MouseEvent.CLICK, release);
btn_forestal.addEventListener(MouseEvent.CLICK, release);
btn_andarivel.addEventListener(MouseEvent.CLICK, release);
btn_comunicaciones.addEventListener(MouseEvent.CLICK, release);
btn_proyectos.addEventListener(MouseEvent.CLICK, release);
btn_elevador.addEventListener(MouseEvent.CLICK, release);
btn_obras.addEventListener(MouseEvent.CLICK, release);
btn_izaje.addEventListener(MouseEvent.CLICK, release);

function release(e:MouseEvent):void {
switch(MovieClip(e.target)){
case btn_pala:
gotoAndPlay(1)
break;
case btn_petroleo:
gotoAndPlay(6)
break;
case btn_pesca:
gotoAndPlay(12)
break;
case btn_grua:
gotoAndPlay(18)
break;
case btn_forestal:
gotoAndPlay(24)
break;
case btn_andarivel:
gotoAndPlay(30)
break;
case btn_comunicaciones:
gotoAndPlay(36)
break;
case btn_proyectos:
gotoAndPlay(42)
break;
case btn_elevador:
gotoAndPlay(48)
break;
case btn_obras:
gotoAndPlay(54)
break;
case btn_izaje:
gotoAndPlay(60)
break;
}
}

antes de eso, quise repetir funciones... pero solo me funcionaba en un fotograma... , no en los otros donde están las otras fotos... te insisto, donde puedo enviarte el .fla,

saludos!!!

Por clansman_21

6 de clabLevel



 

Diseñador Grafico

chrome
Citar            
MensajeEscrito el 23 Jul 2012 06:30 pm
En la galeria solo tenes que cambiar

esto:

Código ActionScript :

switch(MovieClip(e.target))


por esto:

Código ActionScript :

switch(SimpleButton(e.target))




eXe

Por exekiel21

Claber

164 de clabLevel



Genero:Masculino  

programador

chrome
Citar            
MensajeEscrito el 23 Jul 2012 06:44 pm
GENIAL.... ME FUNCIONA!!!!!

solo me queda una duda... esa parte ya funciona, pero no para todos los botones... en que fotograma debiera estar el código???

la galería que tengo es un MC, que adentro tiene 10 fotos, y 10 botones que me llevan a cada foto, cada 6 fotogramas esta cada foto, por eso ocupo la función gotoAndPlay... cada esos 6 fotogramas hay un stop();

donde debiese colocar ese código que me ayudaste a corregir??? en que fotograma, el primero, el ultimo???

saludos!!! y gracias!!

Por clansman_21

6 de clabLevel



 

Diseñador Grafico

chrome
Citar            
MensajeEscrito el 23 Jul 2012 06:53 pm
si los botones estan fuera del mc que contiene la galeria. El codigo lo deberias agregar afuera del mc. El mc que contiene la galeria le tenes que asignar un nombre. Por ejemplo mc_galeria. Y el gotoAndPlay se lo tenes que ejecutar a mc_galeria tonces. Asi con cada caso dentro de tu switch:

Código ActionScript :

case btn_pala:
mc_galeria.gotoAndPlay(1); // va al frame 1 del clip mc_galeria
break;



suerte


eXe

Por exekiel21

Claber

164 de clabLevel



Genero:Masculino  

programador

chrome
Citar            
MensajeEscrito el 23 Jul 2012 07:05 pm
no... los botones estan dentro del MC... como sería en ese caso????

(lo hago con gotoandPlay... por que necesito que al cabial de frame, el boton que seleccione, este de otro color, para que se note que estoy en esa sección...)

gracias!!

Por clansman_21

6 de clabLevel



 

Diseñador Grafico

chrome
Citar            
MensajeEscrito el 23 Jul 2012 07:31 pm
Tonces esta bien como estaba antes. Y el codigo va dentro del MC en el primer fotograma. Fijate que cada boton conserve su nombre en toda la linea de tiempo.

eXe

Por exekiel21

Claber

164 de clabLevel



Genero:Masculino  

programador

chrome

 

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