例えば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 件のコメント:
コメントを投稿