走っている動物をアニメーション化するために使用している画像は 3 つだけです。
現在、私はそれらをスプライトとしてメイン クラスに埋め込み、他の 2 ではなく必要なときにいつでも .alpha プロパティを変更しています。煩わしいことの 1 つは、各スプライトのプロパティを個別に更新することです。オブジェクトが 1 つあり、そのオブジェクトの画像を変更できることが理想的です。そのため、オブジェクトのプロパティを 1 つ変更するだけで済みます。
走っている動物をアニメーション化するために使用している画像は 3 つだけです。
現在、私はそれらをスプライトとしてメイン クラスに埋め込み、他の 2 ではなく必要なときにいつでも .alpha プロパティを変更しています。煩わしいことの 1 つは、各スプライトのプロパティを個別に更新することです。オブジェクトが 1 つあり、そのオブジェクトの画像を変更できることが理想的です。そのため、オブジェクトのプロパティを 1 つ変更するだけで済みます。
このためには、独自のクラスでアニメーションを処理するのが最善です! このようなものです。あなたの動物が馬だとしましょう。それをクラスと呼びます。
package {
import flash.display.Sprite;
public class Horse extends Sprite{
private var holder:Sprite = new Sprite();
public function Horse() {
var img1:Image1 = new Image1();// ur images from library
var img2:Image2 = new Image2();
var img3:Image2 = new Image3();
holder.addChild(img1);
holder.addChild(img2);
holder.addChild(img3);
addChild(holder);
setImage(0);// set 1st image visible
}
public function setImage(nr:uint):void
{
for(var i:int = 0; i < holder.length;i++;)
holder[i].visible = false;
holder[nr].visible = true;
}
}
}
次に、たとえば次のように使用します。
var horse:Horse = new Horse();
addChild(horse);
horse.x = 25;
horse.y = 25; // move the whole object(all 3 images)
horse.setImage(2);// or to whatever frame you need
アルファ値の代わりに visible 属性を使用してください。アルファを 0 に設定しただけでもレンダリングされ、CPU が消費されます。visible を false に設定すると、レンダリングされません!
EDIT:
エイミーが指摘したように、ここではブリッティングが可能ですが、最速のアプローチはBitmapData Frame Assignmentです!ここでは、すべてのフレームをベクター内の BitmapData として保持し、SpriteSheet からロードして、copyPixels を使用する代わりに新しい BitmapData をビットマップに割り当てるだけです。ブリッティングよりも高速であり、すべての組み込みメソッドを利用できます!!