Comunidad de diseño web y desarrollo en internet online

posicion del arrastre

Citar            
MensajeEscrito el 27 Jun 2008 07:11 am
Hola me llamo hernan, tengo un mapa y lo muevo, el problema es q siempre me empieza del 0 0 por el codigo q encontre para moverlo y me gustaria saber si alguien me puede ayudar a modificar el codigo de tal manera que lo mueva cuando haga click (esto ultimo esta hecho), pero, desde el punto q haga click con el raton, porque cuando lo hago ahora mismo se me va al 0 0, os pego el codigo, gracias y un saludo.

MovieClip.prototype.startArrastre = function(centrar) {
delete this.onMouseMove;
// el parámetro centrar tiene el mismo
// comportamiento que en el startDrag clásico
if (centrar) {
var desfaseX:Number = 0;
var desfaseY:Number = 0;
} else {
var desfaseX:Number = _xmouse-this._x;
var desfaseY:Number = _ymouse-this._y;
}
// mientras tenga pulsado y detecte movimiento
// se actualiza la posición del clip
this.onMouseMove = function() {
this._x = _xmouse-desfaseX;
this._y = _ymouse-desfaseY;
updateAfterEvent();
};
};
MovieClip.prototype.stopArrastre = function() {
delete this.onMouseMove;
};
stop();

Por goldsaint

13 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 27 Jun 2008 08:30 am
Todo está en la variable centrar como mismo dice en el comentario de tu código, si centrar tiene valor true empezará a moverlo desde las coordenadas 0, 0 y si centrar es false empezará a moverlo desde donde lo hayas tocado:

Código :

var desfaseX:Number = _xmouse-this._x;
var desfaseY:Number = _ymouse-this._y; 


Lo que me parece una complicación, a no ser que estés utilizando startDrag para otro objeto en la escena puedes utilizarlo para mover el mapa.

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox
Citar            
MensajeEscrito el 01 Jul 2008 06:25 am
entonces como seria el codigo para ponerlo a false?

Por goldsaint

13 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 01 Jul 2008 06:29 am
pero tengo botones en el mapa y cuando pongo stardrag me los desactiva, sabrias de alguna manera como poner el codigo para que eso pase?

Por goldsaint

13 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 01 Jul 2008 10:13 pm
La función startArrastre que has creado con prototype envía una variable centrar, esa variable puede ser true o false.

Cuando en AS1 y AS2 le das un evento botón como onPress o onRelease a un movie, dejan de funcionar todos los elementos que contenga este movie, puedes usar eventos de clip para que esto no ocurra, suponiendo que el movie del mapa que hay en la escena se llama "mapa", puedes utilizar esto:

Código :

_root.mapa.onMouseDown = function():Void{
   
   if(this.hitTest(_root._xmouse, _root._ymouse)){
      
      var marginX:Number = this._xmouse;
      var marginY:Number = this._ymouse;
      
      this.onMouseMove = function():Void{
         
         this._x = _root._xmouse - marginX;
         this._y = _root._ymouse - marginY;
         
         updateAfterEvent();
         
      }
      
   }
   
}

_root.mapa.onMouseUp = function():Void{   
      
   delete this.onMouseMove;
   
}

Por elchininet

Claber

3921 de clabLevel

17 tutoriales

Genero:Masculino  

Front-end developer at Booking.com

firefox

 

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