Comunidad de diseño web y desarrollo en internet online

como establecer limites del movimiento de un clip con mouse

Citar            
MensajeEscrito el 10 Dic 2008 06:37 pm
Hola todos,

Tengo un problemilla, aver si me puedo explicar bien.

He creado un mapa que es un movieclip que hace por ejemplo 500 de ancho y 250 de altura, y el escenario hace 700 de ancho y 500 de altura.
El mapa se muestra con un zoom para que se vean mejor las calles, entonces quiero que cuando el mouse se desplaze a la izquierda, arriba, abajo o a la derecha, el mapa se mueva mostrando las calles que no se ven.

Esto lo e conseguido, en el movieclip del mapa le e puesto un codigo que encontre en un tutorial y he modificado algunos numeros, es este:

onClipEvent (enterFrame) {
posx = _root._xmouse+(245-_root._xmouse)*(this._width/(2*245));
posy = _root._ymouse+(125-_root._ymouse)*(this._height/(2*125));

_x += (posx-_x)*0.01;
_y += (posy-_y)*0.01;

}

Pero tengo un problema, por ejemplo, cuando el mouse se desplaza mucho a la izquierda o a la derecha, etc., el mapa llega a no verse.
Como puedo hacer que cuando llegue a la parte derecha o izquierda, arriba o abajo, se pare????? y asi siempre se verá el mapa hasta sus límites?

También he hecho una mascara porque sino el mapa se muestra por toda la pantalla y así consigo que solo se vea donde yo quiero. Nose si lo habre hecho bien? :S

Espero averme explicado bien, muchas graciasss

Por dieguin83

21 de clabLevel



 

msie
Citar            
MensajeEscrito el 10 Dic 2008 07:03 pm
prueba creando una funcion y delimitando el cursor en el entreframe

Código :

onClipEvent (enterFrame) {
if(_root._xmouse>="el principio de la amscara" && _root._xmouse<="elfinal de la mascara"){
muevete();
}
}

function muevete(){
posx = _root._xmouse+(245-_root._xmouse)*(this._width/(2*245));
posy = _root._ymouse+(125-_root._ymouse)*(this._height/(2*125));

_x += (posx-_x)*0.01;
_y += (posy-_y)*0.01;
}

el de valor de "y" lo sacas igual

Por nasho

Claber

908 de clabLevel

1 tutorial

Genero:Masculino  

Web Developer

firefox
Citar            
MensajeEscrito el 12 Dic 2008 05:55 pm
Lo acabo de provar.

Muchas gracias, no esta mal, pero no es realmente lo que queria, esta bien pq para, pero si io me mantengo en el borde, el clip continua moviendose.

Quiero que se pare cuando el movieclip llegue a su limite. quizas tenga que hacerlo que una caja_mc y no con mascara, pero nose como :S

De momento con esto voy tirando, pero si pudiera hacer lo otro estaria mucho mejor, seguire investigando, si encuento algo lo publicare aqui tambien.

Gracias por la ayudas. sabes lo que quiero decir con que se pare cuando llegue el moviclip a sus limites?? nose si me explico muy bien :S

Por dieguin83

21 de clabLevel



 

msie
Citar            
MensajeEscrito el 13 Dic 2008 03:00 pm
Pues con un if que si x o y del movieclip que quieres mover llegas a cierta posicion ya no ejecute el movimiento con el raton ^^

Por rha3d

16 de clabLevel



 

Aguascalientes, Mexico

chrome
Citar            
MensajeEscrito el 15 Dic 2008 03:51 pm
vale, he estado provando pero no me hace nada :S, buenu sigue igual, no se para donde quiero.

Esta bien hecho el if??? como quedaría? yo lo he puesto asiin:

onClipEvent (enterFrame) {

if(mapa._x >= 32 || mapa._x <= 713 || mapa._y <= 362 || mapa._y >= 28){
muevete();
}

function muevete(){
posx = _root._xmouse+(245-_root._xmouse)*(this._width/(2*245));
posy = _root._ymouse+(125-_root._ymouse)*(this._height/(2*125));

_x += (posx-_x)*0.01;
_y += (posy-_y)*0.01;
}
}

nose si es la manera mapa._x de decirle la posicion.

Ayuda pf! e provado en vez de || (o) ponerle && (y) pero tampoco. :S

Por dieguin83

21 de clabLevel



 

msie
Citar            
MensajeEscrito el 15 Dic 2008 04:56 pm
Soy yo otra vez, he seguido provando y me ha salido algo pero sigo teniendo un problema

Ahora he conseguido que se pare en sus limites (el movieclip que es un mapa) con el siguiente codigo:

onClipEvent (enterFrame) {

if( _x <= 398 && _y <= 150 && _x >= -373 && _y >= -182){ // se para cuando el mouse llega a esa posicion. muevete();
}

function muevete(){
posx = _root._xmouse+(245-_root._xmouse)*(this._width/(2*245));
posy = _root._ymouse+(125-_root._ymouse)*(this._height/(2*125));

_x += (posx-_x)*0.01;
_y += (posy-_y)*0.01;
}
}

El problema es que el mapa se para cuando llega a esa posicion, y ya no me deja mostrar la otra parte para poder ir navegando sobre el, permanece totalmente quieto el movieclip mapa. Lo que quiero lograr es que a esa posicion que se ve en el codigo del if. no continue mas el movimiento del mapa porque sino el mapa llega a no verse pero muy importante es que el mapa pueda verse por la otra parte, en definitiva, que pare pero luego vuelva a moverse.
Esta bien que se pare a esa posicion pero tendria que seguir por el otro lado si el mouse lo desplazo para que se vea.

:S mestoy haciendo la pixa un lio
aver si alguien me puede ayudar, creo que ya me queda poco.

Por dieguin83

21 de clabLevel



 

msie

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.