2009-11-25 25 views
8

Oto coś, co próbuję wymyślić w odniesieniu do obiektów wyświetlanych w ActionScript3/Flex. Załóżmy, że masz obiekt wyświetlany, którego punkt rejestracji znajduje się w lewym górnym rogu, i chcesz przeskalować go ze środka (środek wyświetlanego obiektu). Jak można to łatwo osiągnąć za pomocą klasy flash.geom.MatrixAS3 przy użyciu macierzy do "skalowania" obiektu z jego "centrum"

Dzięki za pomoc

Odpowiedz

8

Dokonuje się tego poprzez przesunięcie obiektu do pożądanego środka skali/obrotu, skalowanie/obracanie go, a następnie tłumaczenie z powrotem.

Można to zrobić za pomocą jednego matrycy przez złączenie macierze aby uzyskać pojedynczą macierz:

var m:Matrix = new Matrix(); 
m.translate(-centerX, -centerY); 
m.scale(scaleX, scaleY); 
m.translate(centerX, centerY); 
+0

Thanks Aarona, znacznie apreciated –

+0

translate() i skali() nie są statyczne metody. Musisz wywołać je z instancji Matrix. – picardo

+0

A przy okazji, wartość zwracana w obu tych metodach jest nieważna. – picardo

Powiązane problemy