Domanda

Come posso fare riferimento le coordinate di un oggetto di visualizzazione secondo oggetto genitore o fase, del dall'interno della classe che crea l'oggetto?

essenzialmente quando creo un nuovo oggetto sprite da una classe personalizzata e aggiungerlo all'elenco di visualizzazione, mi piacerebbe includere il codice all'interno della classe personalizzata che limita le coordinate trascinare allo stadio, o di una sezione del palco.

//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();
        }
    }
}
È stato utile?

Soluzione

C'è qualche supporto nativo per quello che si vuole fare. startDrag() accetta un rettangolo come un parametro che limita la regione in cui la resistenza può avvenire.

function startDrag(lockCenter:Boolean  = false, bounds:Rectangle  = null):void

Speranza che aiuta,

Tyler.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top