例えばA.asというクラスを持ったMCを1〜3フレームに配置します。
各フレームにはキーフレームを切ってあり、MCの座標は各フレームで違い、各MCには60フレーム程のアニメーションが設定されているとします。
public function A():void{
addEventListener(Event.ADDED_TO_STAGE , init);
addEventListener(Event.REMOVED_FROM_STAGE , init);
trace("construct");
}
private function init(e:Event):void{
if(e.type==Event.ADDED_TO_STAGE){
trace("added");
gotoAndPlay(2);
}else{
trace("removed");
gotoAndStop(1);
}
}のようにコードを書きます。
すると、下記のような挙動になります。
(マウスクリックで次のフレームに進みます)
各フレームに別のインスタンスを生成したつもりなのに、あたかも一つのインスタンスの座標が変わったかのようにアニメーション状態を引き継いでしまいます。
これを回避するには、各MCに名前を付けると良いようです。
下記は、各MCに名前を付けたものです。
(マウスクリックで次のフレームに進みます)
タイムラインにMCを並べてレイアウト等を管理する時は、少しこの点に注意して作成した方が良いかもしれません。
0 件のコメント:
コメントを投稿