mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2025-12-22 02:06:03 +08:00
[as3][starling] Fixed TexturePacker trimming support. Thanks @evilbert103! Closes #948
This commit is contained in:
parent
4a69af12e2
commit
262bc26c64
Binary file not shown.
@ -69,29 +69,29 @@ package spine.attachments {
|
|||||||
public function updateOffset() : void {
|
public function updateOffset() : void {
|
||||||
var regionScaleX : Number = width / regionOriginalWidth * scaleX;
|
var regionScaleX : Number = width / regionOriginalWidth * scaleX;
|
||||||
var regionScaleY : Number = height / regionOriginalHeight * scaleY;
|
var regionScaleY : Number = height / regionOriginalHeight * scaleY;
|
||||||
var localX : Number = -width / 2 * scaleX + regionOffsetX * regionScaleX;
|
var localX : Number = -width * 0.5 * scaleX + regionOffsetX * regionScaleX;
|
||||||
var localY : Number = -height / 2 * scaleY + regionOffsetY * regionScaleY;
|
var localY : Number = -height * 0.5 * scaleY + regionOffsetY * regionScaleY;
|
||||||
var localX2 : Number = localX + regionWidth * regionScaleX;
|
var localX2 : Number = localX + regionWidth * regionScaleX;
|
||||||
var localY2 : Number = localY + regionHeight * regionScaleY;
|
var localY2 : Number = localY + regionHeight * regionScaleY;
|
||||||
|
|
||||||
var radians : Number = rotation * Math.PI / 180;
|
var radians : Number = rotation * Math.PI / 180;
|
||||||
var cos : Number = Math.cos(radians);
|
var ulDist : Number = Math.sqrt(localX * localX + localY * localY);
|
||||||
var sin : Number = Math.sin(radians);
|
var ulAngle : Number = Math.atan2(localY, localX);
|
||||||
var localXCos : Number = localX * cos + x;
|
var urDist : Number = Math.sqrt(localX2 * localX2 + localY * localY);
|
||||||
var localXSin : Number = localX * sin;
|
var urAngle : Number = Math.atan2(localY, localX2);
|
||||||
var localYCos : Number = localY * cos + y;
|
var blDist : Number = Math.sqrt(localX * localX + localY2 * localY2);
|
||||||
var localYSin : Number = localY * sin;
|
var blAngle : Number = Math.atan2(localY2, localX);
|
||||||
var localX2Cos : Number = localX2 * cos + x;
|
var brDist : Number = Math.sqrt(localX2 * localX2 + localY2 * localY2);
|
||||||
var localX2Sin : Number = localX2 * sin;
|
var brAngle : Number = Math.atan2(localY2, localX2);
|
||||||
var localY2Cos : Number = localY2 * cos + y;
|
|
||||||
var localY2Sin : Number = localY2 * sin;
|
offset[BLX] = Math.cos(radians - blAngle) * blDist + x;
|
||||||
offset[BLX] = localXCos - localYSin;
|
offset[BLY] = Math.sin(radians - blAngle) * blDist + y;
|
||||||
offset[BLY] = localYCos + localXSin;
|
offset[ULX] = Math.cos(radians - ulAngle) * ulDist + x;
|
||||||
offset[ULX] = localXCos - localY2Sin;
|
offset[ULY] = Math.sin(radians - ulAngle) * ulDist + y;
|
||||||
offset[ULY] = localY2Cos + localXSin;
|
offset[URX] = Math.cos(radians - urAngle) * urDist + x;
|
||||||
offset[URX] = localX2Cos - localY2Sin;
|
offset[URY] = Math.sin(radians - urAngle) * urDist + y;
|
||||||
offset[URY] = localY2Cos + localX2Sin;
|
offset[BRX] = Math.cos(radians - brAngle) * brDist + x;
|
||||||
offset[BRX] = localX2Cos - localYSin;
|
offset[BRY] = Math.sin(radians - brAngle) * brDist + y;
|
||||||
offset[BRY] = localYCos + localX2Sin;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function setUVs(u : Number, v : Number, u2 : Number, v2 : Number, rotate : Boolean) : void {
|
public function setUVs(u : Number, v : Number, u2 : Number, v2 : Number, rotate : Boolean) : void {
|
||||||
|
|||||||
Binary file not shown.
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user