在as3中缩放精灵?

bea*_*ans 0 actionscript-3

我在as3代码中有一个sprite,我想输入它的高度来调整它,我怎样才能相应地缩放宽度?

sprite.height = 200;
sprite.width = ??
Run Code Online (Sandbox Code Playgroud)

谢谢

Jas*_*ges 9

如果要缩放精灵,为什么不使用使用缩放方法?

sprite.scaleX = 2;
sprite.scaleY = 2;
Run Code Online (Sandbox Code Playgroud)

否则,您需要应用比率,例如宽度/高度.

假设您的精灵是宽度:150,身高:100.这意味着宽度是身高的1.5倍.

// calculate ratio of scale factor
var ratio:Number = sprite.width / sprite.height; // 1.5

// apply ratio your sprite's original dimensions:
sprite.height = 200;
sprite.width = sprite.height * ratio; // 300
Run Code Online (Sandbox Code Playgroud)

这也可以使用矩阵变换来完成.


bla*_*lah 6

设置宽度/高度时会更新缩放属性,因此您可以使用它们来缩放其他尺寸:

sprite.height = 200;
sprite.scaleX = sprite.scaleY;
Run Code Online (Sandbox Code Playgroud)

比自己跟踪/更新宽高比更容易,更不容易出错.