|
Empezamos
creando un objeto clip de pelicula, (espero que despues de los anteriores
tutoriales ya sepas hacerlo) pero te lo repetire..... porque soy
muy bueno y generoso...Para crear un clip de pelicula en Flash...
Pulsa
Ctrl + F8 y te aparecera nuestro querido amigo el menu de crear

Ese elemento puede tener
la forma color y aspecto que tu quieras, pero debe ser un clip de
pelicula. por ejemplo un pequeño menu, que quedara como algo
asi...

Ahora te voy a repetir
algo que quiero que te quede bien claro y asi lo entenderas mejor.
Y es la diferencia entre instancia y objeto. Mientras estas creando
este menu trabajas con el objeto, y mientras que lo estas colocando
todo en el escenario principal estas trabajando con su instancia.
Te repito esto, porque si te compras algun libro, te volveran loco
hablando de instancias y objetos, y normalmente no viene muy bien
explicado.
Una vez tenemos nuestro
clip de pelicula llamado "menu" tendremos que empezar
a trabajar para que se mueva cuando hagamos click sobre el.
Para lo cual tendremos
que hacer que se ejecute una accion del clip de pelicula. Esto se
refleja en el codigo de ActionScript asi:
OnClipEvent
(onMouseDown) { .....}
Esto significa que cuando
el clip de pelicula registra una presion sobre el mismo entonces
entra en las ordenes que se le introducen enlos corchetes. Entre
los corchetes escribiremos unas serie de condiciones que nos ayudaran
a realizar nuestros objetivos.
Una vez haya Flash leido
que cuando haya una pulsacion del raton, entre en los corchetes
entonces entramos en el contenido de los mismos....
Para empezar....
OnClipEvent
(onMouseDown) {
if (
this.hitTest ( _root._xmouse, _root._ymouse, true)) {
this.startDrag
();
}}
onClipEvent
(onMouseUp) {
this.stopDrag
();
}
Ahora
es cuando te explicare para que sirve cada una de las lineas de
codigo:
La primera
esta mas o menos clara porque ya te la explique antes, sigamos con
las posterirores....
If se
trata de un operador, como todos sabreis por las clases de ingles
del cole es un si condicional, es decir expresa una condicion que
tiene que cumplirse. Si esa condicion se cumple entrara en la zona
de los corchetes, donde se encontrara con lo siguiente.
if (
this.hitTest ( _root._xmouse, _root._ymouse, true))
this.hitTest:
es un metodo que se aplica a los clips de peliculas. En este caso
a "this" que es el clip de pelicula actual (esto esta
basado en JAVA). Lo que hace hitTest es decirnos si algo se superopone
al clip de pelicula que le estamos diciendo. Es decir en este caso
su funcion sera la de decirnos si cuando el raton se ha presionado
estaba o no sobre nuestro clip de pelicula. Y al ver si el raton
estaba o no sobre el clip, nos dara un valor de respuesta de true
(verdadero) o false (mentirijilla).
Lo que
esta entre los parentesis son una serie de parametros que el programa
necesita para saber donde esta el raton en la pelicula que se esta
ejecutando. En este caso...
_root._xmouse:
es una propiedad del raton y lo que hace es decir la situacion del
raton en la pelicula respecto a las coordenadas x.
_root._ymouse:
es una propiedad del raton y lo que hace es decir la situacion del
raton en la pelicula respecto a las coordenadas y.
true:
se trata de un valor booleano (esto que te puede sonar a chino)
signifgica solo que el valor puede tomar los valores de false o
true nada mas.... en este caso true significa que estamos refiriendonos
a la instancia mientras que flase indica que nos referimos a la
caja que contiene a la instancia.
Es decir
que en resumidas cuentas esta linea lo que hace es responderle al
If con un verdadero o falso, de tal manera que el if ejecute o no
sus ordenes, que son las que estand dentro de los corchetes.
Una
vez que Flash a verificado que es veradero o falso la condicion
que dice el hitTest, entonces se pasa a la orden en este caso dada
por if y esa orden es.....
this.startDrag
(); : es una accion que esta aplicada al clip de pelicula
actual que es lo que indica el this. Eso lo que hace es que inicia
el moviento de nuestro menu mientras que el raton este pulsado.
En el
caso de que el raton se deje de pulsar, Flash pasara a la siguiente
linea que es de esta forma:
onClipEvent
(mouseUp) {
Esto
lo indica a flash que en el caso de que el raton deje de ser pulsado
se inicie la secuencia de ordenes que tiene entre los corchetes.
Aqui es bien sencilla se trata solo de esta orden.
this.stopDrag
();
Esto
le indica a flash que deje de arrastrar el clip actual de pelicula.
Con
lo que si has seguido mas o menos los pasos y no te has equivocado
en nada, todo tenria que funcionar. Aqui debajo te pongo el codigo
de ActionScript que ejecuta todo esto que hemos visto....
onClipEvent
(mouseDown) {
if (this.hitTest(_root._xmouse, _root._ymouse, false)) {
this.startDrag();
}
}
onClipEvent (mouseUp) {
this.stopDrag();
}
Espero
que este tutorial te haya servido de algo. Y que sigas visitando
nuestra pagina para aprender mas con nosotros.....
Y si
quieres y te apetece porque no haces tu un tutorial..... Nosotros
te lo publicampos gustosamente.......
|