2011-10-24 6 views
0

私はas3コードでスプライトを持っています。サイズを変更するために高さを入力したいのですが、どのようにそれに応じて幅を調整できますか?スプライトをas3でスケールしますか?

sprite.height = 200; 
sprite.width = ?? 

おかげ

答えて

6

あなたは幅/高さを設定するときに、他の次元を拡張するためにそれらを使用できるようにスケールのプロパティが、更新されています

sprite.height = 200; 
sprite.scaleX = sprite.scaleY; 

簡単かつ少ないエラーを自分でアスペクト比を更新/追跡するよりも起こりやすいです。

9

あなたがスプライトを拡張したい場合は、なぜ利用規模のメソッドを使用していませんか?

sprite.scaleX = 2; 
sprite.scaleY = 2; 

それ以外の場合は、幅/高さなどの比率を適用する必要があります。

スプライトの幅が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 

これは、マトリックス変換を使用して達成することもできます。

関連する問題