Resultados 1 al 2 de 2

Tema: Código sencillo en as3 que no funciona

  1. #1
    Fecha de ingreso
    Feb 2008
    Mensajes
    2

    Código sencillo en as3 que no funciona

    Buenas tardes, estoy programando un código en principio bastante sencillo en actioscript 3.0, pero no consigo que funcione totalmente como yo quiero.

    El clip consta de 96 frames con un estop(), en los frames 1, 24, 48, 72 y 96. El código es el siguiente:
    Código:
    //variables para manejo de la primera sección.
    
    Var abrirsec1:number = 2.
    
    Var ultimosec1:number = 24.
    
    Var cerrarsec1:number = 25.
    //variables para manejo de la 2º sección.
    
    Var abrirsec2:number = 49.
    
    Var ultimosec2:number = 72.
    
    Var cerrarsec2:number = 73.
    //función abrir para el botón 1.
    
    Function abrirboton1(e:event) : Void.
    {.
    
    If (this, currentframe == 1).
    {.
    
    Gotoandplay(abrirsec1).
    }.
    
    If (this, currentframe == ultimosec2).
    {.
    
    Gotoandplay(cerrarsec2).
    
    Gotoandplay(abrirsec1).
    }.
    }.
    //función abrir para el botón 2.
    
    Function abrirboton2(e:event) : Void.
    {.
    
    If (this, currentframe == 1).
    {.
    
    Gotoandplay(abrirsec2).
    }.
    
    If (this, currentframe == ultimosec1).
    {.
    
    Gotoandplay(cerrarsec1).
    
    Gotoandplay(abrirsec2).
    }.
    }.
    //listeners.
    
    Botón1.addeventlistener(mouseevent. Click, abrirboton1).
    
    Botón2.addeventlistener(mouseevent. Click, abrirboton2).
    Básicamente tenemos un escenario con dos botones que, abren dos secciones distintas del clip, si pulsamos en el botón 1 se abre la 1ª sección, si volvemos a pulsar ese botón no ocurre nada, ahora bien, si pulsamos en el botón 2 estando abierta la sección 1, pues ésta se cierra y se debe de abrir la sección 2.

    La sección 2 tiene el mismo comportamiento que la 1, si estando abierta la sección 2 pulsamos el botón 2, no pasa nada, pero si pulsamos en 1, la sección 2 se cierra y se abre la sección 1.
    ¿Qué es lo que me occurre con mi código actual? Que estando en el frame 1, si pulsamos el botón 1 se abre la sección 1, pero si pulsamos el botón 2, no se cierra la sección 1, sino que se sitúa en el frame 1 y abre la sección 2.

    Simplificando, nunca entra en el segundo if de cada function, se comporta como si cada vez que pulsáramos un botón, lo hiciéramos desde el frame 1, cuando realmente los botones los podemos pulsar desde los frames 1, 24 y 49. Un saludo.

  2. #2
    Fecha de ingreso
    May 2005
    Mensajes
    259

    Código sencillo en as3 que no funciona

    Probaste asignándole nombres de instancia a los frames en vez de usar variables?
    Código:
    if (this, currentframe == ultimosec2).
    {.
    
    Gotoandplay(cerrarsec2).
    
    Gotoandplay(abrirsec1).
    }
    Esto es algo que no entiendo. No se puede ejecutar el play del timeline en un mismo bloque 2 veces. No tiene mucho sentido. Lo que sí funcionaria es, por ejemplo, para este caso, que se ejecute solo la primer línea y en el último frame poner el código de la segunda línea para que se ejecute ahí. O si se necesita que ambas acciones se ejecuten al mismo tiempo, entonces puedes usar instancias de cilp de película (es solo un método este). Con instancias quedaría algo así:
    Código:
    if (this, currentframe == ultimosec2).
    {.
    
    Miinstanciax.gotoandplay(cerrarsec2).
    }
    Saludos.
    Última edición por Xian; 16-08-2009 a las 22:33

Temas similares

  1. Modelo sencillo
    Por hectorsf21 en el foro Modelado
    Respuestas: 4
    : 18-01-2016, 19:19
  2. Hotel sencillo
    Por MikeMendez en el foro Trabajos en Proceso
    Respuestas: 1
    : 21-10-2009, 17:42
  3. Rápido y sencillo
    Por bancher en el foro Render, Iluminación y Cámaras
    Respuestas: 0
    : 30-03-2006, 06:38
  4. Algo sencillo
    Por alexv en el foro Trabajos Finalizados
    Respuestas: 10
    : 13-01-2006, 23:04
  5. Un escritorio sencillo
    Por migueilichenco en el foro Trabajos Finalizados
    Respuestas: 4
    : 04-12-2003, 17:20