
おそらくFlashを勉強し始めた人にとって、一番やっかいなのが、この「ムービークリップ」と「パス」の概念でしょう。
グラフィックシンボルと、ムービークリップシンボルの違いは2つです。
グラフィックシンボルは、「ルート(_root)」(またはムービクリップ:親)にタイムラインがないと、アニメーションが再生されません。ルートとは、Flashドキュメントを新規制作した際に表示されるタイムラインのことです。
つまり、グラフィックシンボルのアニメーションの再生は、ルートやムービークリップのタイムラインと同期していると言えます。

一方、ムービークリップは、ルートにタイムラインが無くても、ムービーがループ再生されます。つまり、独立してアニメーションが再生されます。
また、ムービークリップには、「onClipEvent(load){}」や「onClipEvent(entarFrame){}」にアクションスクリプトをつけることができます。
*Flash(ルート)自体も、おおざっぱに言えばムービークリップであると言えます。
![]()
↑グラフィックシンボルと、ムービークリップシンボルのマークの違い
サンプルではあえてムービークリップを使用せずにWEBサイトを構築しましたが、小規模のサイトならまだしも、ある程度の規模のサイトやゲームなどは、ムービークリップを入れ子にしながら、うまく制作していく必要があります。
ムービークリップの入れ子とは、ムービークリップの中にムービークリップを配置することができることで、それぞれのムービークリップは、独立したタイムラインを持ちます。つまり、それぞれが独立して再生されるということです。

例えば車が走るアニメーションを制作するとき、タイヤは常に回っている必要があります。タイヤが回るアニメーションのムービークリップを車のムービークリップに入れ子にすることによって、タイヤが回りながら車が移動するというアニメーションを制作することができます。
上図を見てみると、「MC_Car」というムービクリップの中に、「MC_taiya」というムービークリップが配置されています。「MC_taiya」はタイヤが回り続けているアニメーションのムービクリップです。
こうしてムービークリップを入れ子にすることにより、「MC_Car」の動きに関係なく、タイヤが回り続ける車を制作することができます。この車「MC_Car」をルートで移動させるアニメーションをつければ、車が走るアニメーションの完成です。
ハイパーリンクにも、絶対パスと相対パスが存在しますが、ムービークリップの指定方法にも、絶対パスと相対パスが存在します。

例えば、ルート上に配置されているボタンインスタンス「Button」をクリックすると、「MC_taiya01」ムービークリップインスタンスの回転を止めようとした場合、
書き方01 :相対パス
on(release){
this.MC_Car.MC_taiya01.stop();
}
書き方02:絶対パス
on(release){
_root.MC_Car.MC_taiya01.stop();
}
となります。つまり、相対パスは、「this」、「_parent」を使って、相対的にパスを指定する方法です。絶対パスは、「_root」を利用して、常に「Root」から数えてパスを指定する方法です。
「_parent」と書きましたが、例えば、「MC_tiya01」からみて、ルートに配置されている「Button」は、相対パスでは、
_parent._parent.Button
となり、絶対パスでは、
_root.Button
となります。相対パスでは、「_parent」一つでムービークリップ一つ分ルートに近づくことになり、「MC_Car」から見て、「Button」は、
_parent.Button(相対)または、_root.Button(絶対)となります。
上の説明だと、すべて絶対パスで指定してしまえば良さそうなものですが、実は、絶対パスは、便利ですがあまり使うことをお勧めしません。
というのも、SWFファイルが外部読み込みされる場合(後で詳細は説明する)、ルートがそのFlashファイルから、読み込み元のルートに変わってしまうというルールがあるためです。
つまり、作り方によっては、「ルート(基準)」が変わってしまうことがあるので、パスが変わってしまう現象が起こります。そういった現象が起こらない「相対パス」を使ってプログラミングを組む癖をつけた方が、いらないバグに悩まされず、開発がスムーズに進みます。
