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

alquien me explica estas 3 lineas?

Estas en el tema de alquien me explica estas 3 lineas? en el foro de Flash y Actionscript en Foros del Web. Esto esta en un scroll horizontal...Y abajo estan todas las letras del abcdario, y cuando uno apreta una letra va a esa letra, es como ...
  #1 (permalink)  
Antiguo 27/09/2007, 16:41
 
Fecha de Ingreso: marzo-2007
Mensajes: 782
Antigüedad: 17 años, 8 meses
Puntos: 16
alquien me explica estas 3 lineas?

Esto esta en un scroll horizontal...Y abajo estan todas las letras del abcdario, y cuando uno apreta una letra va a esa letra, es como un diccionario...

La 1era de predeterminado aparece, obviamente la A y texto, y la ultima la Z y su texto...Corre solo horizontalmente...Cada vez que se apreta una letra se direcciona...

Quiero aprender este codigo...Como funciona la logica??? gracias...


Cita:


onClipEvent(load){
_x=5
}
onClipEvent(enterFrame){
_x+=(x-_x)*0.1
}

ah y en los botones esto:
Cita:

letra_a.onPress = function() {
informacion.x = 5;
};
letra_b.onPress = function() {
informacion.x = -242;
};
letra_c.onPress = function() {
informacion.x = -491;
};
  #2 (permalink)  
Antiguo 27/09/2007, 17:46
Avatar de radarcba  
Fecha de Ingreso: mayo-2005
Ubicación: ureleando
Mensajes: 505
Antigüedad: 19 años, 6 meses
Puntos: 3
Re: alquien me explica estas 3 lineas?

ok

Código:
onClipEvent(load){
_x=5
}
onClipEvent(enterFrame){
_x+=(x-_x)*0.1
}
Aclaración: cp= Clip de Película !

OnClipEvent(load):

OnClipEvent se refiere específicamente al cp al que le hagas referencia. En este caso se debe estar refiriendo al cp en el cual esta escrito.
load es un evento de OnClipEvent. Este evento ocurre por única vez cuando el cp referenciado se inicia por primera vez, esto es importante entenderlo, sólo ocurre cuando el cp se carga!!!.
_x = 5; _x es una palabra reservada de flash que indica la posición horizontal en el plano (Lienzo de la película principal). Por lo tanto le estás asignando a la posición horizontal del cp el valor 5.
enterFrame es otro evento de OnClipEvent. este evento sucede cada vez que el cabezal del cp pasa por el fotograma 1.
_x+=(x-_x)*0.1 teneniendo en cuenta la explicación anterior de _x, acá le estas diciendo losiguiente: que a _x le asignes la suma entre _x más (un valor x menos _x) multiplicado por 0.1.
_x+=(x-_x)*0.1 es lo mismo que _x = _x + (x-_x)*0.1 .

Luego:
Código:
letra_a.onPress = function() {
informacion.x = 5;
};
Lo que haces aca es ActionScript 2. Tenes que tener seguramente botones en tu presentación y los mismo tienen que tener un nombre de instancia (Panel propiedades). Estos botones se deben llamar letra_a, letra_b y letra_c.
Lo que haces en este código es decirle a flash que cuando pressiones uno de estos botones
Código:
letra_a.onPress
ejecute la funcion
Código:
 function() {
informacion.x = 5;
};
De aca deduzco que el clip de película de la primera explicación se llama "informacion". Entonces si recordas, más arriba teníamos _x = _x + (x-_x)*0.1, en dónde hay un valor x.
Entonces lo que haces es: Cuando presionas el botón letra_a le asignas a la variable x del cp información, el valor 5; que si prestas atención es igual al valor de _x en la primera explicación.

Para resumir, seguramente tenes tres botones y un cp(informacion) y cuando haces click sobre algunos de estos botones el cp se debe mover a otra posición

Espero haberte ayudado.
__________________
Maldición va a ser un día hermoso... PR
Tetris, correo & TU IP
  #3 (permalink)  
Antiguo 27/09/2007, 18:30
 
Fecha de Ingreso: marzo-2007
Mensajes: 782
Antigüedad: 17 años, 8 meses
Puntos: 16
Re: alquien me explica estas 3 lineas?

Perfecta la explicacion...te lo agradezco por el tiempo dedicado...

Ahora no termino a entender del todo los parametros que van dentro de los parentesis (enterframe) y (load)

Cuantos parametros hay para poner adentro???

Bueno si son muchos...No los expliques, los leo del libro...

Pero al menos estos 2 me interesa tener bien la explicacion si no es mucho pedir...

Igualmente te agradezco ya tengo mas nocion...

Creo que load es cuando se cargo del todo el MC...Supongo que cuando cargue el MC, hace la accion...

y el otro enterframe, por q el 1er frame???

saludos y muchas gracias...Es q todavia no termino de entender bien bien la idea, bye...


Otra cosa, por que hace una animacion prolija cuando se acerca a la letra??? va rapido y se va deteniendo...tiene algo que ver las operaciones numericas con la animacion tipo resorte???
  #4 (permalink)  
Antiguo 27/09/2007, 21:55
Avatar de radarcba  
Fecha de Ingreso: mayo-2005
Ubicación: ureleando
Mensajes: 505
Antigüedad: 19 años, 6 meses
Puntos: 3
Re: alquien me explica estas 3 lineas?

Esto es lo que ldice la ayuda de Flash:
load La acción se inicia tan pronto como se crea una instancia del clip de película y aparece en la línea de tiempo.

unload La acción se inicia en el primer fotograma después de eliminar el clip de película de la línea de tiempo. Las acciones asociadas con el evento de clip de película Unload se procesan antes de añadir ninguna acción al fotograma afectado.

enterFrame La acción se activa continuamente a la velocidad de fotogramas del clip de película. Las acciones asociadas con el evento de clip enterFrame se procesan antes de añadir ninguna acción a los fotogramas afectados.

mouseMove La acción se inicia cada vez que se mueve el ratón. Utilice las propiedades _xmouse e _ymouse para determinar la posición actual del ratón.

mouseDown La acción se inicia cuando se presiona el botón izquierdo del ratón.

mouseUp La acción se inicia cuando se suelta el botón izquierdo del ratón.

keyDown La acción se inicia cuando se presiona una tecla. Utilice Key.getCode() para recuperar información sobre la última tecla presionada.

keyUp La acción se inicia cuando se suelta una tecla. Utilice el método Key.getCode() para recuperar información sobre la última tecla presionada.
data La acción se inicia cuando se reciben datos en una acción loadVariables() o loadMovie(). Si se especifica con una acción loadVariables(), el evento data sólo se produce una vez, concretamente cuando se carga la última variable. Si se especifica con una acción loadMovie(), el evento data se produce repetidas veces, cuando se recupera cada una de las porciones de datos.


Mi explicación "casera":
enterframe: cuando te pongo el primer frame es para que te des una idea de como funciona el evento. Los cp tienen un cabezal que los recorre fotograma por fotograma desde el fotograma 1 hasta el último fotograma en que encuentre datos; cuando este cabezal encuentra el final vuelve al fotograma 1 nuevamente, salvo que le indiques lo contrario (puede ser un stop() o un gotoAndPlay() por ejemplo).
Graficamente:
cabezal = #


| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
# # # # # # # # # # desde el 10 salta al 1
# # # # # # # # # #

El cabezal cada vez que pasa por el fotograma 1 inicia el evento enterframe.

load es básicamente un evento que se ejecuta una sóla vez cada vez que el cp se carga.

Create un nuevo cp, ponelo en la linea de tiempo principal, seleccionalo y abri el panel de acciones. En este panel pone:

Código:
onClipEvent(load){
  trace('evento load')	
}
onClipEvent(enterFrame){
  trace('evento enterFrame')	
}
Fijate como funciona.
Si necesitas mas explicación avísame.
Acordate que la mejor manera de aprender Flash es probar y probar y probar ;).
__________________
Maldición va a ser un día hermoso... PR
Tetris, correo & TU IP
  #5 (permalink)  
Antiguo 28/09/2007, 08:51
 
Fecha de Ingreso: marzo-2007
Mensajes: 782
Antigüedad: 17 años, 8 meses
Puntos: 16
Re: alquien me explica estas 3 lineas?

Hola bueno gracias!!! ya probe obvio...Y salio una vez load y enterframe tipo bucle...

Osea que cada vez que se pisa el frame donde esta el codigo enterframe, se ejecuta la accion...Y el load se ejecuta cada vez que se carga el MC, osea si se cargo una vez, se ejecuto esa vez y hasta que no se vuelva a cargar no se ejecutara la accion...

Es asi?

Many gracias!!!
  #6 (permalink)  
Antiguo 28/09/2007, 23:38
Avatar de radarcba  
Fecha de Ingreso: mayo-2005
Ubicación: ureleando
Mensajes: 505
Antigüedad: 19 años, 6 meses
Puntos: 3
Re: alquien me explica estas 3 lineas?

Cita:
Iniciado por radarcba Ver Mensaje
Casi !! ;)
enterframe no es que se cargue cuando se "pisa" el frame, sino que se carga cada vez que se reinicia el MC.
Pone un MC(el mismo) en 2 fotogramas distintos.
En los dos escribí un evento enterframe
El primero sin ninguna acción que lo detenga.
Y en el segundo ponele un stop();

Para diferenciarlos pone trace(A) y trace(B) por ejemplo.
Asi vas a ver la diferencia.
Si no lo terminas de entender avisame y te armo un ejemplo ;)
__________________
Maldición va a ser un día hermoso... PR
Tetris, correo & TU IP

Última edición por radarcba; 28/09/2007 a las 23:40 Razón: mejorar explicacion
  #7 (permalink)  
Antiguo 01/10/2007, 18:00
 
Fecha de Ingreso: marzo-2007
Mensajes: 782
Antigüedad: 17 años, 8 meses
Puntos: 16
Re: alquien me explica estas 3 lineas?

Hola si casi del todo lo entiendo...Podrias reformular la prueba que tengo que hacer??? creo que con las pruebas veria las diferencias...

puse on enter frame, pero me tira que tiene que aparecer en un controlador on/ClipEvent!!!

gracias...
  #8 (permalink)  
Antiguo 01/10/2007, 22:09
Avatar de radarcba  
Fecha de Ingreso: mayo-2005
Ubicación: ureleando
Mensajes: 505
Antigüedad: 19 años, 6 meses
Puntos: 3
Re: alquien me explica estas 3 lineas?

lo que tenes que escribir en el panel acciones es:
seleccionando cada mc
en uno
onClipEvent(enterframe){
trace("uno")
}
en el otro
onClipEvent(enterframe){
trace("dos")
}
estos es a modo de ejemplo. trace saca en la ventana de salida lo que esta entre ().
__________________
Maldición va a ser un día hermoso... PR
Tetris, correo & TU IP
  #9 (permalink)  
Antiguo 01/10/2007, 22:28
 
Fecha de Ingreso: marzo-2007
Mensajes: 782
Antigüedad: 17 años, 8 meses
Puntos: 16
Re: alquien me explica estas 3 lineas?

Hola ahi esta lo probe...

te comento que paso...

1er caso:

1 MC, en frame 1 y frame 20 (en el medio vacio, ya que agregue un MC vacio en el frame 2)

En el MC del frame 1 en acciones de Movie Clip, use este codigo:

Cita:
onClipEvent(enterframe){
trace("uno")
}
Y en el otro use este codigo:

Cita:
onClipEvent(enterframe){
trace("dos")
}
Lo pruebo y no sale ningun aviso...En el panel de Salida

2do caso:

Lo mismo pero con un stop() en el frame 20

Salió repetitivamente la palabra "dos" en el panel de Salida

3er caso:

En el MC del frame uno cambio enterframe por load

Sale la palabra "uno", pero mucho mas pausado...Ya que solo aparece cuando pasa por el frame 1, siendo la cantidad maxima de frames en esta pelicula 20.

4to caso:

Agrego al frame 20 la accion stop()

Sale una sola vez la palabra "uno" y repetitivamente la palabra "dos", en el panel de Salida a la misma velocidad que en el 2do caso...

Eso fue lo que paso...

La verdad todavia tengo mis dudas...Espero no me quieras matar!! viste cuando hay un tema que se te hace mas dificil y termina siendo facil???

Lo que entiendo hasta ahora es que...enterframe se usa para cuando se paso por el frame y esta ese MC, si esta varias veces en la linea y pusimos "traces" nos va a aparecer varias veces "trace"

Y load es para cuando se cargo...osea que si se carga en el frame 1, despues reaparece en el frame 20 solamente va a aparecer en el frame 1 el trace...Igual sigo con dudas...

Por que no aparecio nada en el 1er caso??? el que no agregue stop...

Las explicaciones de flash no fueron tan claras en este punto...Perdon y saludos!!!

Última edición por eybel; 01/10/2007 a las 22:38
  #10 (permalink)  
Antiguo 01/10/2007, 22:41
Avatar de radarcba  
Fecha de Ingreso: mayo-2005
Ubicación: ureleando
Mensajes: 505
Antigüedad: 19 años, 6 meses
Puntos: 3
Re: alquien me explica estas 3 lineas?

me parece que te estás confundiendo y no es para nada dificil.
Imaginate un tema de musica en el winamp(por ejemplo xD).
Le das play y si no tenes seleccionada la opción para repetir, llega al final y se detiene ok?
Ahora si tenes seleccionada la opción para repetir el tema, que pasa? el tema vuelve a comenzar, o sea que pasa de nuevo por el principio ok?
Esto es basicamente el evento "enterframe" de un clip de pelicula; el evento va a suceder cada vez que el "puntero" de la línea de tiempo del clip de película vuelva al principio("pase por el frame 1").
En cambio el evento load, solo va a suceder la primera vez que le diste play a tu tema, por más que lo repitas, ya que el tema ya esta cargado en el winamp.
Se entiende mejor asì?
__________________
Maldición va a ser un día hermoso... PR
Tetris, correo & TU IP
  #11 (permalink)  
Antiguo 02/10/2007, 10:26
 
Fecha de Ingreso: marzo-2007
Mensajes: 782
Antigüedad: 17 años, 8 meses
Puntos: 16
Re: alquien me explica estas 3 lineas?

Si creo ahora lo entendi.No era mucho mas de lo que pensaba...Gracias por las explicaciones!!!.Ahora voy a seguir viendo ejemplos para ver en que casos se usa!!

Son solo cosas que son fundamentales para entender...y como tenia ciertas dudas, postie...

Saludos bye!!
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:51.