- 締切済み
外部swfが表示されません
FLASH初心者です。 いろいろと調べながら、外部swfを取り込んだswfの作成にチャレンジしています。 今連続する外部swf(子swf)を a.swf b.swf c.swf として作成し、それらを表示させるための親swfを下記のように作成しているのですが表示されません。 親swf作成の作業としては 1.a.swfを外部から取り込んで表示させるためにムービークリップを作成 『挿入』⇒『新規シンボル』⇒『新規シンボルの作成』で名前:mc1 タイプ:ムービークリップとしてシンボルを作成。 2.b.swf、c.swfにもムービークリップを作成 1.同様にし、 b.swfのシンボル名を“mc2”、インスタンス名を“mc2” c.swfのシンボル名を“mc3”、インスタンス名を“mc3” 3.シンボル“mc1”の1フレーズ目に loadMovie("a.swf","mc1"); とアクションスクリプトを入力。 4.シンボル“mc2”、シンボル“mc3”も同様にしてそれぞれ loadMovie("b.swf","mc1"); loadMovie("b.swf","mc3"); と入力。 5.ステージ上に新規レイヤー“MC1”・“MC2”・“MC3”を作成。 6.“MC1”レイヤーをタイムライン上の1フレーズ目で『キーフレーム』に変更し、ライブラリから“mc1”をステージ上へドラッグして配置。 7.レイヤー“MC2”・レイヤー“MC3をそれぞれ12フレーズ目、24フレーズ目で同様にキーフレームを作成して“mc2”・“mc3”を配置。 子swf単体では表示されるのですが、上記の親swfはムービープレビューしても何も表示されません。 どのようにすれば子swfが親swfで表示されるようになるのでしょうか。 ちなみに子swfファイル・親swfファイルは全て同じフォルダ内にあります。 環境 OS:WindowsXP アプリケーション:FLASHI MX 7.2 よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- BlurFiltan
- ベストアンサー率91% (1611/1754)
ここに質問される多くの方にも言えることなのですが, なぜ 1つのみ でしてみないのですか? 1つだと原因究明も簡単になります。 またココに書く手間も省けます。 また考える手間も省けます。 できない状態で進み続けるからさらに状況が複雑になって,問題点が見えなくなり手に負えなくなります。 問題解決には「問題を切り分ける」ということが必要です。 「切り分ける=単純化する」ということです。 問題解決が出来ない状態のまま進むということは逆に問題を複雑化させるということ他なりません。 それは悪循環するだけです。 つまり, ここに質問される方の多くはそこに共通の欠点があります。 その欠点に気をつければスムーズに行くようになると思います。 (多くの方 ≠ 全ての方 です。) > 3.シンボル“mc1”の1フレーズ目に > loadMovie("a.swf","mc1"); おそらく意味がわかっていらっしゃらないのでこう書かれているのだと思います。 この意味は, // この階層のインスタンス「mc1」に「a.swf」をロード loadMovie("a.swf","mc1"); です。 スクリプトを書いた階層,つまりシンボル“mc1”内に, 「mc1」 というインスタンスは存在するのでしょうか。 存在すればそこに「a.swf」がロードされると思います。 シンボル“mc1”内の「mc1」にロードするのではなくて, シンボル“mc1” をステージ上に配置したインスタンスそのものに「a.swf」をロードするのでしょう? そうでしたらスクリプトは次のようになります。 // この階層に「a.swf」をロード loadMovie("a.swf", this); 自分自身を this で相対参照していますから, この場合はインスタンス名は要りません。 もし, この シンボル“mc1”をステージに配置したインスタンス に 「mc1」というインスタンス名を付けていて, そのインスタンス名を使いたい場合は次のようにします。 // _root階層にあるインスタンス「mc1」に「a.swf」をロード loadMovie("a.swf", _root.mc1); あまり次のような妙なことはしませんが, もし相対パスで自分自身を再参照したい場合は次のように書きます。 // 親階層にあるインスタンス「mc1」に「a.swf」をロード loadMovie("a.swf", _parent.mc1); または // 自分の親階層にあるインスタンス「mc1」に「a.swf」をロード loadMovie("a.swf", this._parent.mc1); ActionScript最重要事項「ターゲットパス」を理解すると同時にいつもこれに注意してください。 「ターゲットパス」 http://homepage3.nifty.com/ginga-b/MX/targetpath.html
補足
各MCのアクションスクリプトにloadMovie("各swf", this);として、ステージ上の1フレーズ目にライブラリから各MCをドラッグしてところ全てのswfが表示されました。 しかしレイヤー“MC2”・レイヤー“MC3をそれぞれ12フレーズ目、24フレーズ目にしてキーフレームを作成し、“mc2”・“mc3”をライブラリから各MCをドラッグしてムービープレビューをすると真っ白になってしまいます。 どのようにすれば12フレーズ目でb.swf、24フレーズ目でc.swfが表示されるようになるのでしょうか。 よろしくお願いします。。。