AS3: Einstellung Registrierung Punkt ein DisplayObject mit actionscript?
Wie würden Sie das registrierungskreuz auf ein Sprite oder eine Form, die über actionscript (ich weiß, das ist trivial mit Flash, aber ich muss es tun, rein in actionscript)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Flash-Player-API nicht aufzudecken. Ich glaube, das liegt daran, dass Flash tatsächlich backt in der Registrierung Punkt in der shape-Daten beim erstellen der SWF-Datei. Somit gibt es keinen tatsächlichen registrierungskreuz zu verschieben (anstatt, Sie würde verschieben Sie das Form-Daten... wenn der Flash-Player erlaubt das Bearbeiten von shape-Daten!).
Ich immer dieses Problem lösen, indem Sie einfach die Erziehung meiner sprite/Form auf ein anderes DisplayObject. Also, wenn ich spriteA und wollen seiner bei der Registrierung zeigen (15, 35), ich würde dies tun:
Und dann von da an finden spriteB überall, wo ich war, die zuvor unter Bezugnahme auf spriteA.
Mit der transform-matrix ist dies möglich. Hier ist eine gute Umsetzung dieses finden Sie auf diese Website.
für Sie bedeutet der index ?Folgenden die Kommentare, die Sie tun können, eine schnelle Implementierung wie folgt Aussehen.
Dies ist nicht genau das, was Sie wollen, da Sie nicht verschiedene Ausrichtungen für jedes Kind.
Ich wollte einfach nicht machen es zu kompliziert, es ist mehr wie 'Arbeits-pseudo-code", um Ihnen eine Idee ...
Ich hoffe, dies hilft jemand. Das Starling framework hat eine fantastische Methode, genannt "alignPivot()". Ich nahm Ihr Konzept und passte es an die Flash DisplayList. Sie im Grunde sagen Sie ein sprite zu ändern Sie die Registrierung, um Links, rechts, Mitte, oben und unten. Dieser code fügt Ihr sprite in einen container sprite und positioniert sich entsprechend. Es gibt die container-sprite mit dem original-sprite-innen enthalten.
Code gespeichert in einer separaten namens genannt, "Position".
Umsetzung:
Liste von Konstanten, so dass Sie nicht haben, schreiben Sie sich selbst:
Je nachdem, warum Sie es brauchen, es könnte gelöst werden durch die Verwendung von DisplayObject.verwandeln.matrix, das gibt einen Matrix Objekt.
Zum Beispiel, wenn Sie wollte, ändern Sie den Punkt der rotation, dann können Sie mit der Transformation der matrix zu tun.