En este tip mostraré un código para los que necesitan hacer el scroll de una imagen por medio del movimiento del mouse, esto es útil en el manejo de mapas, exploración de imágenes, y varias aplicaciones mas.
Primero pondremos este código en el primer frame de la película que sera para lograr el efecto de deslizamiento de la imagen explicado en este tip.
Código :
function mover(x,y, aceleracion) { _root.show.foto.onEnterFrame = function() { this._x += (x-this._x)/aceleracion; this._y += (y-this._y)/aceleracion; if (Math.abs(x-this._x)<0.5 && Math.abs(y-this._y)<0.5 ) { this._x = x; this._y = y; delete this.onEnterFrame; } }; }
Después crearemos un cuadrado con relleno normal, lo seleccionaremos y lo convertiremos en clip (F con el punto de registro en la parte superior izquierda (esto es muy importante en cada uno de los clips que crearemos, verificar que el punto de registro sea el que se indica para cada uno de ellos) al clip que acabamos de crear le daremos el nombre de instancia show (recordar el nombre de instancia de los clips para poder hacer referencia y no perdernos, por que sera un poquito confuso)
A este clip le asignamos estas acciones (que después explicare con detalle)
Código :
onClipEvent (mouseMove){ if (this.hitTest(_root._xmouse, _root._ymouse, true)){ _root.mover( -((foto._width-btn._width) /btn._width) * _xmouse,-((foto._height -btn._height) /btn._height) * _ymouse,7); } }
Seleccionamos el clip show y le damos doble clip, accederemos dentro de este y encontraremos el cuadrado, lo seleccionamos y lo convertimos en clip de nuevo, si de nuevo, es para generar otro clip dentro del clip show que es el que hará el efecto.
Después de haberlo convertido en clip le asignaremos el nombre de instancia btn, posterior a esto, generaremos otras dos capas en la parte de abajo.
Después en la segunda capa copiamos el keyframe de la primera y lo pegamos y en la tercera importamos una imagen a la cual convertimos en clip también (f y le asignamos el nombre de instancia foto, quedando en este orden:
- Capa, el cuadrado convertido en clip
- Capa la copia del keyframe del cuadrado, con lo cual tendremos dos cuadrados
- La imagen importada convertida en clip
A el clip ftoo lo seleccionamos y le asignamos en acciones (f9) este código
Código :
onClipEvent (load){ this._x=-(this._width/2)+(_parent.btn._width/2); this._y=-(this._height/2)+(_parent.btn._height/2); }
Que hará que la imagen se centre de inicio. Después de esto seleccionamos la segunda capa y damos click derecho, seleccionando la opción mascara del menú.
Seleccionamos el clip de la primera capa y le damos efecto de alpha 0 para que sea transparente.
Vamos a la película principal y listo, debe quedar algo como esto:
Ahora la parte de explicación. El código que hace las maravillas, y lo demás es solo adorno, es este:
Código :
onClipEvent (mouseMove){ [code]if (this.hitTest(_root._xmouse, _root._ymouse, true)){[/code] _root.mover( -((foto._width-btn._width) /btn._width) * _xmouse,-((foto._height -btn._height) /btn._height) * _ymouse,7); } }
Al detectar que se mueve el mouse onClipEvent (mouseMove) hace una detección si el puntero del mouse hace contacto con este clip if (this.hitTest(_root._xmouse, _root._ymouse, true)){ hace el cálculo de esta manera a grandes rasgos, una regla de tres, si el cuadro pequeño se mueve 1 el grande se moverá 2 dependiendo del tamaño de la imagen, por eso se hace una equivalencia, y cabe notar que se le resta el ancho del cuadrado para que no salga del área total, y siempre se mantenga una proporción dentro de lo visible, esto se puede hacer inmediato sin llamar a la función, solo que con la función el efecto de easing lo hace mucho mas atractivo
Cualquier error que se me haya pasado por favor comentarlo aquí para hacer la corrección.
¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.
Por elfleat el 23 de Mayo de 2007
El otro dia buscaba algo asi!
Por Cancun el 23 de Mayo de 2007
Por el 23 de Mayo de 2007
Por pabletein el 23 de Mayo de 2007
bueniiisima!!!
cada dia aprendiendo mas!!!!
Por Pley el 24 de Mayo de 2007
He probado con un tamaño un poco mayor 800 x 600 ... osea, la imagen es de ese tamaño .. y el cuadrado es un poco menos .. y no se por q no me sale
segui lo pasos .. y nop .. no se mueve .. lo q si me sale .. es q la imagen se posicion en el extreme superior izquierdo ..
help
Por FeNtO el 24 de Mayo de 2007
Por Kei-kun el 24 de Mayo de 2007
<b>tsuki wo miru tabi omoi dase</b>
Por Señor Oz el 24 de Mayo de 2007
Ojala puedas ayudarme, la imagen de foto puede ser de cualquier tamaño???
otra cosa, en el script que pones en la instancia de show, despues de el clip event del mouse move, pones algo como esto
"_root.mover", por que es que pones mover????, hay alguna instancia a la que se le tenia que llamar asi y no lo hice, o que cosa?, gracias por la respuesta.
Por Señor Oz el 24 de Mayo de 2007
Asi las cosas, entonces toda esta sentencia:
_root.Mover(-((foto._width - btn._width) / btn._width) * _xmouse, -((foto._height - btn._heigth) / btn._width) * _ymouse, 7);
¿¿¿serian los parametros de la funcion Mover?????
Gracias por el apoyo
Por FeNtO el 24 de Mayo de 2007
y este script es completo mio, fue de una pregutna que formulo alguien en nomaster, la mastique un dia y salio eso , espero les sirva
Por Señor Oz el 25 de Mayo de 2007
Sigan con esa grandeza
Por Pley el 25 de Mayo de 2007
FeNtO :
si no es mucha molestia ... por q me sale error? ...
Por FeNtO el 25 de Mayo de 2007
Por Señor Oz el 25 de Mayo de 2007
Estare al tanto por si deseas la ayuda:
Señor Oz
we must over the rainbow and up the irons¡¡¡
Por FeNtO el 26 de Mayo de 2007
Por Kane el 27 de Mayo de 2007
la ultima parte del codigo donde se introduce...
Por FeNtO el 28 de Mayo de 2007
onClipEvent (load){
this._x=-(this._width/2)+(_parent.btn._width/2);
this._y=-(this._height/2)+(_parent.btn._height/2);
}
es en el clip foto
Por Alex! el 29 de Mayo de 2007
Por cromosoma47 el 05 de Junio de 2007
una parte del código tiene un error, prueben con este código:
Código :
es "mover" y NO "Mover"
Si tienen otro problema me comentan y les doy una mano.
Saludos!!
Cristian Arce.
Por FeNtO el 05 de Junio de 2007
Por Mariux el 05 de Junio de 2007
cromosoma47 :
arreglado
Por Mukongo el 09 de Junio de 2007
la imagen si se centra las mascaras funcionan los nombres estan bien y ya revise el codigo 1000 veces , esto es lo raro me sale si solo lo hago aparte, si lo agrego a otro trabajo donde existan mas escenas se queda quieto... que paso? si no le pongo stop no puedo verlo pues pasa a las demas escenas y si le pongo no se mueve... ayuda medio urgente porfavor
Por FeNtO el 09 de Junio de 2007
Por Pley el 18 de Junio de 2007
cromosoma47 :
es "mover" y NO "Mover"
Sip, ese era mi problema ahora ya me salio. Gracias Fento
Por Teseo el 18 de Junio de 2007
Buen sistema!!.
Yo personalmente me he hecho este código que permite múltiples llamadas a distintos clips o imágenes a la vez y no necesita ninguna preparación. Basta poner el código y llamar a la función cuando la necesitemos con el nombre del clip ( o imagen), el punto de aplicación y las dimensiones del espacio visual deseado.
Código :
Esto es lo que resulta con las 3 llamadas del ejemplo ( 2 son imágenes de biblioteca y otra un clip instanciado en el escenario.
La "prioridad" si hay superposición se establece por el orden de carga ( llamada a la función).
Es fácil añadirle si se desea un efecto de easing como haces en tu script u otro cualquiera, así como otro sistema de control del mouse al gusto.
Por virian medrano gómez el 08 de Julio de 2007
Por flashrelocoguillez el 14 de Julio de 2007
Gracias
Fento
Por flashreloco el 14 de Julio de 2007
Por Atrocity el 17 de Julio de 2007
He probado el cambio de rutas y el uso del _lockroot y no hay forma, si alguien lo ha logrado que nos eche una mano.
Gracias a todos de antemano.
Por Bloom el 15 de Agosto de 2007
Escribo por primera vez y me ocurre lo mismo que a Flashreloco y Atrocity, no funciona cuando lo intento llamar desde otra película.
Por favor, si alguien lo consigue que lo comunique. Gracias
Por WUAZO el 22 de Octubre de 2007
Por FeNtO el 22 de Octubre de 2007
Por carol el 25 de Octubre de 2007
Por MERCENARIO el 31 de Octubre de 2007
Bueno desde ya, al que pueda ayudarme con esta duda , muchisimas gracias por el tiempo.
saludos! manuel
Por MERCENARIO el 31 de Octubre de 2007
saludos!manuel
Por fernando dke el 20 de Noviembre de 2007
una imagen a scrollar en cual tendria adentro botones ayudaaaaaaa
Por chahi el 28 de Febrero de 2008
Por FeNtO el 28 de Febrero de 2008
y ahi definir las funciones de acuerdo a lo que necesites
Por chahi el 28 de Febrero de 2008
Por Mariana el 18 de Julio de 2008
Por Henry el 17 de Agosto de 2008
gracias
como cambio el tamaño del cuadro que permite ver la imagen?
gracias mil
saludos
Por FeNtO el 18 de Agosto de 2008
Por balmert el 02 de Septiembre de 2008
Por AlG0oj3 el 04 de Septiembre de 2008
Por andresmaxit el 14 de Septiembre de 2008
Me surgio un problema, al publicar en .swf, e incrustarlo en un html la imagen interna no se visualiza, solo se ve un pleno rojo.
Cual seria el problema?
Muchas Gracias
Por chavewain el 19 de Septiembre de 2008
Por lup el 25 de Septiembre de 2008
Por mlchius el 13 de Noviembre de 2008
[email protected]
Por marcvan el 19 de Diciembre de 2008
mi jovi es flash! es lo maximo (q se utilizar a medias!).
Gracias por este tutorial!!!
Lo necesitaba...! gracias! pregunta: estoy haciendo una pagina (Mia) con tutoriales y utilidades..
¿Puedo copiar algunos tuto de aca????.. pongo los devidos creditos obvio! .. gracias!
MArshe
Por mario gomez el 13 de Enero de 2009
http://www.estiloflash.com
mi correo es: [email protected]
Gracias.
Por mario gomez el 13 de Enero de 2009
http://www.beatles.com/hub/love/site/
Por novatus el 19 de Febrero de 2009
Trate de poner dos imagenes con el mismo efecto y no me funcionó, no se por que, individualmente lo funcionan, intente cambiandole el nombre a las instancias (y en el codigo desde luego), pero aún asi no funcionaron.
Gracias de antemano por la ayuda y por aqui estamos para lo que sea.
Un salduote.
Por camba el 24 de Febrero de 2009
puede ser que sea un error de calculo de la regla de 3?, mi imagen "foto" mide 1959.45 x 575.4, y el stage 1280 x 800.
Desde ya te agradezco tu ayuda, y nuevamente mis felicitaciones por el tuto y por la actitud!
Te dejo la dirección de mi web, asi tenes el ejemplo: http://marioprieto.com.ar
Por arturo el 25 de Febrero de 2009
Por andteam el 28 de Febrero de 2009
Por oxidorocha83 el 02 de Marzo de 2009
Por oxidorocha83 el 02 de Marzo de 2009
Por oxidorocha83 el 02 de Marzo de 2009
Código :
_root.mover( -((foto._width-btn._width) /btn._width) * _xmouse,-((foto._height -btn._height) /btn._height) * _ymouse,7);
}
}
este codigo en que capa va.
Por Andres el 31 de Marzo de 2009
Por aru el 11 de Abril de 2009
Por oscar el 13 de Junio de 2009
Por Cano el 09 de Septiembre de 2009
Por rosa el 14 de Noviembre de 2009
Ahora tengo un problema. En la galería tengo la primera parte en el frame 38 y la segunda parte en el 39 pero, al momento de subirla al sitio la primera parte de la galeria (frame 3 no se descarga bien, solo se ven 2 imagenes de 10 y, la segunda parte (frame 39) funciona muy bien.
Es acaso que tengo que cambiar los nombres de las instancias a todos los movie clips??
Agradecería mucho su ayuda. Gracias
Por zack_rca el 17 de Noviembre de 2009
Por valeria el 24 de Noviembre de 2009
quiero hacer algo parecido a lo explicado en este tutorial: un lienzo grande con un flecha en cada esquina y que se mueva cuando presiono el boton.
alguien podria ayudarme???
Por sandok el 07 de Diciembre de 2009
Por jenn_nlov el 12 de Enero de 2010
Por albertoterrazas el 27 de Enero de 2010
Location
scene 1, layer 'Layer1, Frame1, Line2
Description
1120: Acces of undefined _root
Source
_root.show.foto.onEnterFrame = function() {
y asi muhcos de este tipo
no seque podra estar pasando
y otro que dice
11:80 call a possibly undefined method onClipEvent
me pueden ayudar??
gracias
Por Soll el 28 de Enero de 2010
Por albertoterrazas el 28 de Enero de 2010
gracias
Por gilberto el 25 de Marzo de 2010
Por Fernando el 14 de Mayo de 2010
Por florencia y alejo be el 16 de Mayo de 2010
Por florencia alejo beso el 16 de Mayo de 2010
[f]
Por juan david munera el 10 de Junio de 2010
Por juanda el 16 de Junio de 2010
Por scorp el 14 de Julio de 2010
no tendras imagenes para poder enterder mejor
Por TheCatGirl17 el 15 de Julio de 2010
Por gzpaxo el 20 de Julio de 2010
http://gorillaz.com/Scene.php
Muchas gracias
Por rq! el 30 de Julio de 2010
Yo también estaba teniendo el problema sobre la carga del swf con un loadMovie en otro swf, noté que muchos preguntaron como solucionarlo y nadie dió respuesta. Bueno, yo encontré la solución:
1. Cambié los "_root" por "this" para que así se desarrollen las acciones en el swf2 donde está el contenido a scrollear y no en el swf1 principal (ya que al llamar un swf2 dentro de un swf1, el _root pasa a ser el sw1):
Código :
2. Al botón del swf1 principal (desde donde se llamará el swf2 con el scroll), le asigné esto:
Código :
Esto hace que el scroll respete el lugar donde se está cargando y funcione correctamente.
Eso es todo No se ven las fechas de los post, así que no sé si esto está llegando muy tarde pero espero que sea útil para alguien
PD: si algunos nombres están cambiados es porque estoy usando este código en conjunto con otras cosas para hacer algo más complejo
Por CLAnonimo el 08 de Septiembre de 2010
Hola a todos haber si me ayudan .en que version funciona en AS2 O AS3 .porque en los dos no me funciona o que estare haciedno mal hago todos pasos y corrigo ese error de mover por Mover . donde puedo descarga el archivo Fla de este tutorial .les agredeceria mucho.
Por CLAnonimo el 31 de Octubre de 2010
Por Akira el 26 de Noviembre de 2010
Por Oscar Vela el 03 de Febrero de 2011
Por Oscar Vela el 03 de Febrero de 2011
Código :
Por Jabon de baño el 11 de Febrero de 2011
el efecto esta interesante pero hay varias cosas que no entiendo del todo como hacerlas... te lo agradecería increíblemente.... (?(?)?)
Por Adrian Rivera el 25 de Febrero de 2011
Por Hamlet el 30 de Marzo de 2011
Por aryad cs5 el 07 de Junio de 2011
Por marylu el 29 de Junio de 2011
Por Cristian Trujillo el 03 de Octubre de 2011
Por kemonito el 08 de Noviembre de 2011
Por kemonito el 08 de Noviembre de 2011
Por Les el 23 de Febrero de 2012
Por REICKCHER el 06 de Marzo de 2012
Por REICKCHER el 06 de Marzo de 2012
Por Alejandro el 18 de Marzo de 2012
Por blascota1 el 10 de Agosto de 2012
Por Juanka el 04 de Enero de 2013
Por nesox el 07 de Marzo de 2013
Por Bdiseño el 05 de Marzo de 2015
gracias