Discussion: drag difficile
Afficher un message
  #5 (permalink)  
Vieux 16/08/2004, 11h23
Avatar de eRom
eRom eRom est déconnecté
Membre
 
Date d'inscription: December 2003
Localisation: Fance
Messages: 41
Hello !

Pour faire simple, tu peux utiliser la propriété _droptarget de ton MovieClip.
Le plus simple serait un code de ce type :
- On part du principe que l'on a 2 MovieClip sur notre scène.
Le premier mcItem que l'on pourra déplacer.
Le deuxième mcTarget qui sera notre cible pour le Drop.

Code:
var nX:Number = mcItem._x;
var nY:Number = mcItem._y;

mcItem.onPress = function():Void {
  this.startDrag();
}
mcItem.onRelease = function():Void {
  this.stopDrag();
  if (eval(this._droptarget) == mcTarget) {
    trace("Drop Item Ok");
    //Actions à réaliser
  } else {
    trace("Drop Out");
    this._x = nX;
    this._y = nY;
  }
}
Regardes bien l'aide sur la notion de _droptarget, tu remarqueras que la propriété retroune un chemin absolu sur le clip en question, d'où la nécessité d'utiliser la fonction eval pour le test.

Cette fonction assez simple permet donc de tester si "le centre" d'un MovieClip est dans une cible. Mais en faisant des tests tu remarqueras que si ton centre n'est pas dans la cible (et même si une autre partie de ton MovieClip est dedans), le Drop ne sera pas correct.
Si tu veux utiliser des formes complexes, ou bien "droper" si 1 seul pixel est dans la cible, regardes du coté de la fonction hitTest().

Voili voilà pour un début de réponse....

@+ et bon courage
__________________
<- Pourquoi est la seule et vraie question ->
Réponse avec citation