Comment puis-je référencer les coordonnées d'un objet d'affichage en fonction de son objet parent ou de son stade dans la classe qui crée l'objet? Essentiellement quand je crée un nouvel objet sprite à partir d'une classe personnalisée et que je l'ajoute à la liste d'affichage, je souhaite inclure du code dans la classe personnalisée qui limite les coordonnées de traînée à la scène ou à une section de la scène. .Limiter les coordonnées de déplacement de l'objet d'affichage dans AS3
//Frame Script
import Swatch;
var test:Sprite = new Swatch();
addChild(test);
___________________
//Custom Class
package
{
import flash.display.Sprite;
import flash.events.MouseEvent;
public class Swatch extends Sprite
{
public function Swatch()
{
init();
}
private function init():void
{
var swatchObject:Sprite = new Sprite();
swatchObject.graphics.beginFill(0x0000FF, 1);
swatchObject.graphics.drawRect(100, 100, 150, 150);
swatchObject.graphics.endFill();
swatchObject.addEventListener(MouseEvent.MOUSE_DOWN, onDrag, false, 0, true);
swatchObject.addEventListener(MouseEvent.MOUSE_UP, onDrop, false, 0, true);
this.addChild(swatchObject);
}
private function onDrag(evt:MouseEvent):void
{
evt.target.startDrag();
//how to limit it's dragability to the Stage?
}
private function onDrop(evt:MouseEvent):void
{
evt.target.stopDrag();
}
}
}
N'oubliez pas d'écouter l'événement Event.MOUSE_LEAVE (attachez-le 'onDrop'), au cas où l'utilisateur clique sur l'objet et abandonne la scène (bien que cela soit peut-être intégré dans' startDrag() 'fonctionnalité déjà?). Référence: http://help.adobe.com/en_US/AS3LCR/Flash_10.0/flash/display/Stage.html#event:mouseLeave – Cameron