1) Limitation de la traînée de masque à l'axe Y:
Il suffit d'utiliser le deuxième argument (limites de l'startDrag: rectangle).
// startDrag method details
startDrag(lockCenter:Boolean = false, bounds:Rectangle = null):void
lui donner un rectangle qu'il devrait utiliser comme ses limites. Des détails et des exemples peuvent être trouvés sur Adobe's livedocs. Par exemple, pour verrouiller glisser seulement l'axe Y, vous devez faire la largeur de votre rectangle égal à 0.
var dragBounds:Rectangle = new Rectangle(startX, startY, 0, dragHeight);
myMask.startDrag(false, dragBounds);
2) masque de retour à l'original Y, sur une chute:
Le moyen le plus façon d'écouter l'événement mouseup sur la scène. Lorsque cela se déclenche et que vous faites glisser le masque, réglez le masque y sur son emplacement d'origine. Personnellement, je voudrais utiliser Tweener pour renvoyer le masque, mais vous pouvez le faire comme vous voulez (éventuellement sur enterFrame).
public function Main()
{
stage.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);
}
private function mouseUpHandler(e:MouseEvent):void
{
if (draggingMask)
{
Tweener.addTween(myMask, { y:originalY, time:0.5, transition:"easeOutQuad" });
draggingMask = false;
}
}
Vous devez définir draggingMask true lorsque vous commencez à faire glisser le masque, et false lorsque vous le relâchez. Vous aurez également besoin d'une variable pour stocker l'emplacement d'origine (j'ai utilisé "originalY" dans mon exemple ci-dessus).