Foros del Web » Creando para Internet » Flash y Actionscript »

menú dinámico?

Estas en el tema de menú dinámico? en el foro de Flash y Actionscript en Foros del Web. Hola!! seguro q este tema está ya muy trillado, pero debo ser torpe y no encuentro lo q quiero. quiero hacer el típico menú q ...
  #1 (permalink)  
Antiguo 29/07/2010, 01:54
 
Fecha de Ingreso: enero-2007
Mensajes: 323
Antigüedad: 17 años, 10 meses
Puntos: 9
menú dinámico?

Hola!!

seguro q este tema está ya muy trillado, pero debo ser torpe y no encuentro lo q quiero.

quiero hacer el típico menú q cuando le das click a un botón y aparece la información, el botón se queda pulsado o activo, y al dar a otro botón el anterior se desactiva con la correspondiente animación y el pulsado se queda activado.

He encontrado cosas en internet, pero no lo básico para hacer esto. Creo q se llama menú dinámico.

Espero vuestra ayuda!

Gracias!
  #2 (permalink)  
Antiguo 29/07/2010, 04:00
 
Fecha de Ingreso: julio-2010
Mensajes: 6
Antigüedad: 14 años, 4 meses
Puntos: 0
Respuesta: menú dinámico?

Hola matig!

Yo he hecho de esos tirando de movieclips que hacen el efecto de un desplegable. Para el tema de ocultar he utilizado un escuchador:

var escucharaton:Object= new Object;
escucharaton.onMouseDown= function(){
if ((_xmouse<=-466) || (_xmouse>=-334) || (_ymouse<=13) || (_ymouse>=46))
{ocultar(); //le das las coordenadas para que cuando se haga click ahí de paso a ocultar
}
}
Mouse.addListener(escucharaton);
function ocultar(){
this._visible=false; //no visible
Actu2.unloadMovie(); //quita la peli-desplegable
}

Dale unas vueltas que lo sacas rápido, seguro.
saludos!!
  #3 (permalink)  
Antiguo 29/07/2010, 15:48
 
Fecha de Ingreso: enero-2007
Mensajes: 323
Antigüedad: 17 años, 10 meses
Puntos: 9
Respuesta: menú dinámico?

Muchas gracias por tu respuesta!!

Pero yo me refiero a los botones. Cómo hacer el menú, q el botón pulsado se quede activo, y q al dar a otro botón el anterior vuelva a su estado inicial. Por ejemplo como este menú: http://www.templatehelp.com/preset/p...dH11UTp79f3pqZ

Y por cierto, uso AS3!

Gracias!
  #4 (permalink)  
Antiguo 29/07/2010, 17:19
Avatar de esdebon  
Fecha de Ingreso: agosto-2008
Ubicación: México
Mensajes: 167
Antigüedad: 16 años, 3 meses
Puntos: 18
Respuesta: menú dinámico?

Pues puedes hacer un boton (un movieclip) general con 2 animaciones y un texto que definas por actionscript.

Animacion de onOver (el los primeros frames), animacion onOut.

A cada boton le das un nombre de instamcia diferente, yo les llamare uno, dos y tres

y defines las acciones sobre cada boton:


Código:
import fl.motion.MotionEvent;
import flash.events.MouseEvent;

uno.campoNombre.text='Inicio';
dos.campoNombre.text='Seccion';
tres.campoNombre.text='Otra Seccion';

uno.addEventListener(MouseEvent.MOUSE_OVER, sobre);
uno.addEventListener(MouseEvent.MOUSE_OUT, deseleccionado);
uno.addEventListener(MouseEvent.MOUSE_CLICK, seleccionado);

dos.addEventListener(MouseEvent.MOUSE_OVER, sobre);
dos.addEventListener(MouseEvent.MOUSE_OUT, deseleccionado);
dos.addEventListener(MouseEvent.MOUSE_CLICK, seleccionado);

tres.addEventListener(MouseEvent.MOUSE_OVER, sobre);
tres.addEventListener(MouseEvent.MOUSE_OUT, deseleccionado);
tres.addEventListener(MouseEvent.MOUSE_CLICK, seleccionado);


function sobre(e:MouseEvent):void{
      e.target.gotoAndPlay('el frame donde empieza la animacion onOver')
}
function deseleccionado(e:MouseEvent):void{
      e.target.gotoAndPlay('el frame donde empieza la animacion onOut')
}
function seleccionado(e:MouseEvent):void{
      e.target.gotoAndStop('el frame donde se queda seleccionado')
      //Accion del boton al dar clic
}

Por cierto no es un orgullo hacer esto en AS3, en estos casos el AS2 hacia todo en menos lineas de codigo.

Si presumes del AS3 haz cosas sorprendentes, no botones.
  #5 (permalink)  
Antiguo 30/07/2010, 03:36
 
Fecha de Ingreso: enero-2007
Mensajes: 323
Antigüedad: 17 años, 10 meses
Puntos: 9
Respuesta: menú dinámico?

Muchas gracias por tu respuesta!

La verdad es q no presumo de usar AS3, si lo uso es casi por accidente, cuando empecé a usarlo ni siquiera sabía q existían distintos lenguajes...me di cuenta cuando pedí ayuda para una cosa, la ayuda me la dieron con AS3 y al intentar juntar cosas q ya había hecho con AS2 no eran copatibles...seguí con AS3 porque me resultaba más fácil cambiar lo q había hecho con AS2 (q era poca cosa) a AS3 q al revés.
  #6 (permalink)  
Antiguo 30/07/2010, 11:37
 
Fecha de Ingreso: enero-2007
Mensajes: 323
Antigüedad: 17 años, 10 meses
Puntos: 9
Respuesta: menú dinámico?

Hola de nuevo!!

Tengo una duda. La función seleccionado es la misma para todos los botones. Cómo se hace para q cada botón haga una cosa diferente?

Gracias!
  #7 (permalink)  
Antiguo 31/07/2010, 14:12
 
Fecha de Ingreso: enero-2007
Mensajes: 323
Antigüedad: 17 años, 10 meses
Puntos: 9
Respuesta: menú dinámico?

Hola!

He probado el código, pero no hace lo q yo busco. Al dar click a uno de los botones, se pone en el fotograma q le hemos dicho (de seleccionado) pero una vez q das click y retiras el cursor del botón aparece la animación del roll over, y yo lo q quería es q una vez q has seleccionado un botón, no aparezca la animación del roll over hasta q no se da click en otro botón...

Gracias!
  #8 (permalink)  
Antiguo 02/08/2010, 17:35
Avatar de esdebon  
Fecha de Ingreso: agosto-2008
Ubicación: México
Mensajes: 167
Antigüedad: 16 años, 3 meses
Puntos: 18
Respuesta: menú dinámico?

Partiendo de que el boton es "generico" y que tiene los mismos frames, si las funciones mandan a los mismos frames.

El codigo que escribi lo redacte aqui mismo en el foro, no lo probe, pero era una guia para resolver tu problema, no lo pense como la respuesta al mismo.

la verdad se me paso lo de que si quitabas el raton se activaria la funcion del MOUSE_OUT, para evitar eso tendrias que agregar una bandera de "activo" o "inactivo" a cada boton:

Código:
import fl.motion.MotionEvent;
import flash.events.MouseEvent;

function todosLibres(){
      uno.bandera=false; 
     dos.bandera=false; 
     tres.bandera=false; 
}

 todosLibres()

uno.campoNombre.text='Inicio';
dos.campoNombre.text='Seccion';
tres.campoNombre.text='Otra Seccion';

uno.addEventListener(MouseEvent.MOUSE_OVER, sobre);
uno.addEventListener(MouseEvent.MOUSE_OUT, deseleccionado);
uno.addEventListener(MouseEvent.MOUSE_CLICK, seleccionado);

dos.addEventListener(MouseEvent.MOUSE_OVER, sobre);
dos.addEventListener(MouseEvent.MOUSE_OUT, deseleccionado);
dos.addEventListener(MouseEvent.MOUSE_CLICK, seleccionado);

tres.addEventListener(MouseEvent.MOUSE_OVER, sobre);
tres.addEventListener(MouseEvent.MOUSE_OUT, deseleccionado);
tres.addEventListener(MouseEvent.MOUSE_CLICK, seleccionado);


function sobre(e:MouseEvent):void{
        if(e.target.bandera==false){
               e.target.gotoAndPlay('el frame donde empieza la animacion onOver')
        }
}
function deseleccionado(e:MouseEvent):void{
        if(e.target.bandera==false){        
            e.target.gotoAndPlay('el frame donde empieza la animacion onOut')
        }
}
function seleccionado(e:MouseEvent):void{
        if(e.target.bandera==false){
                 e.target.gotoAndStop('el frame donde se queda seleccionado')
                 todosLibres()
                 e.target.bandera=true;
                //Accion del boton al dar clic
         }
}
Agregue una condicion para cada estado, esto hace que si ya diste clic a un boton, ya no cambie al pasar el raton o al dar otro clic y una funcion que libera la condicion para cada boton.

Esta funcion todosLibres() se usa al principio para que todos los botones sean activos y el dar clic se usa la funcion para que si ya habias seleccionado algun otro boton este quede activo.


Saludos

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:06.