【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】

外部画像ファイルを読み込んで3枚の写真をクロスフェード
させながら移り変わる映像を作成したいのですが作成に行き詰っております。

現状は、タイムラインに3つのレイヤーを作成、各レイヤーに
ムービークリップを配置しております。
ムービークリップのインスタンス名は(aaa)(bbb)(ccc)にしております。

レイヤー1(aaa) ●――――→●―→●
レイヤー2(bbb) ○―――――●――――→●―→●
レイヤー3(ccc) ○―――――○―――――●――――→●

各レイヤー、2つ目のキーフレームから3つ目のキーフレームにかけて
アルファを100%→0%に推移させて、下レイヤーの画像とクロスフェードする
ようにしたいのです。
各タイムライン、一つ目のキーフレーム(●)にloadMovie("p1.jpg", "_root.aaa");
のフレームアクションを入れております。
※3枚の取込用ファイル名は(p1.jpg・p2.jpg・p3.jpg)を用意しております。

現在、上記のところまで作成しswfにして確認したのですが
最初のクロスフェード場面で、aaaの写真が消えてしまいbbbの写真が
※黒い背景からフェードインのような感じで出現してしまいます。
【※aaaは仮画像として黒いシェイプを作成してムービークリップ(シンボル化)にしております】
その後のクロスフェード箇所も同じ現象です。

調べてみると、loadMovie()は読み込み時に他の再生を完全にクリアする為
bbbの開始(読み込み時)にそのタイムライン中でフェードアウトしようとしていた
aaaの画像がクリアされてしまい黒背景からフェードインしているように見えている
のだと推測しております。

上記からこちらの教えてgooから同じような質問を探し、loadMovieNum()でレベルを指定
して読み込めば複数ファイルを読み込む事が出来ると書かれていたのですが
どこの位置にloadMovieNum()を書き込めば良いのか?各ムービークリップのアクションに
記述するのか、それともタイムラインのフレームに書き込むのかなど
レベルの構造なども理解出来ていないので、先へ進めず足踏み状態になっております。
また、私がやりたい事はloadMovieNum()を使う方法で合っているのかな?など
調べるにも的が絞れない状態でおります。

http://hfm-kenchan.com/Lesson/log_qa/D0708311.htm
↑上記サイトには、私が作成したい物と同じスライドのサンプル・解説があるのですが
スクリプトで構成されており、駆出しの私には理解出来ない部分がありました。
今私が作成しているタイムラインを多用したような方法では、複数の外部テキストを
読み込んでおきスムーズにクロスフェードさせる方法は無理でしょうか?

説明が下手で長文になってしまい、またFLASHの理解不足で不可解な説明になっている
ところも多々あると思いますが、ご参考になる手法等あればお願い致します。

A 回答 (3件)

よくわかりませんが,


各レイヤーの2つめの●のキーフレームにあるムービークリップのインスタンス名が怪しいと思います。
別の名前が付いているとか...。

たとえ,
aaaに読み込まれた外部JPEGがアンロードされてしまったとしても,
元のaaaの黒い塗りの四角は復活しません。

黒い塗りの四角が復活したということは,
再びaaaがもとの状態で再登場したということになります。
aaaがもとの状態で再登場する場合は,
インスタンス名がaaaではなくなったか,
空白キーフレームをはさんで間をおいて再登場したかのどちらかだと思います。
    • good
    • 0
この回答へのお礼

ご指摘頂き、ありがとうございます。
各レイヤー2つ目の●キーフレームにインスタンス名は付けていたのですが
上記場所のフレームアクションにBlurFiltanさんの仰る通り
loadMovie("p1.jpg", "_root.aaa");は入れておりませんでした。
一度読み込んでいて、同じレイヤーにあるのであれば再度読み込みの
アクションが必要と考えておりませんでした。
今回のような作成方法ではその都度アクションが必要なのですね。

レイヤー1(aaa)の2つ目の●キーフレームのフレームアクションに
loadMovie("p1.jpg", "_root.aaa");を記述してプレビューして
見ると画像が表示されました☆
ただ、画像は表示されたのですがフェードアウトが始まる際に
一瞬白く画像が飛んでしまいそこからフェードアウトが
始まるというふうになってしまいます。
やはり、読み込めたとしてもloadMovie()の方法では読み込み時に
一瞬間が空いてしまうという事なのでしょうか?

お礼日時:2008/01/25 21:10

#1&2 です。



降参です。
#2のお礼で書かれていらっしゃる内容についてですが,
たしかに onClipEvent(load) を書くと変になることは確認できました。

その後,
2つ目以降の ● のインスタンス名を付けてみたり取ってみたりしてみても,
挙動が変になるだけで,ぜんぜんうまく動きませんし,
onClipEvent(load) は削除して,
loadMovie ではなく MovieClipLoaderクラスのメソッドを使ってロードしてみてもやはり挙動不審な動きをします。

書かれていらっしゃるように,

> これらの設定とムービークリップに
> onClipEvent (load)でのサイズ指定は共存できないのでしょうか?

どうもうまく共存できないようです。
よくわかりませんが,降参です。すみません。
    • good
    • 0
この回答へのお礼

BlurFiltanさん、ありがとうございます。

今の方法ではクロスフェードとサイズ指定が難しい事なんですね。
度々教えて頂き、大変勉強させて頂きました。
ありがとうございますm(_ _)m

他の回避策を、自分なりに勉強して頑張ってみます☆

お礼日時:2008/01/27 10:38

#1です。



> 一度読み込んでいて、同じレイヤーにあるのであれば再度読み込みの
> アクションが必要と考えておりませんでした。
> 今回のような作成方法ではその都度アクションが必要なのですね。

いえ,
決してそんなことはありません。
ロードは1回で良いのです。
#1では,

> たとえ,
> aaaに読み込まれた外部JPEGがアンロードされてしまったとしても,
> 元のaaaの黒い塗りの四角は復活しません。

と書いただけで,2回ロードすべきとは書いていませんよ。
もしロードしたJPEGが,
何かの拍子にアンロード(ロードしたものがなくなる)されてしまっても,
空のムービークリップが残るだけですから,
読み込む前の最初の黒い塗りの四角にもどるはずはないということです。

いったんaaaが消えて(空白キーフレームなどをはさんで),
再び登場する場合はロードは2回必要ですが,
そうでなければ,ロードは1回でOKです。

2回もロードすると当然,

> 画像は表示されたのですがフェードアウトが始まる際に
> 一瞬白く画像が飛んでしまいそこからフェードアウトが
> 始まるというふうになってしまいます。

という現象が起こってしまいます。

#1を回答する前に,
実際に書かれていらっしゃる状況を作成したのですが,
ご質問で書かれていらしゃるような現象(aaaが黒い塗りにもどってフェードアウトするという現象)は起こりませんでした。

そういう変な現象が起きるのはどういうときだろう?
と思って,
間に空白キーフレームをはさんだとき↓

レイヤー1(aaa) ●――――→●○●―→●

や,違うインスタンス名を付けたとき↓

レイヤー1 ●――――→●―→●
      aaa       xxx

をやってみると,
aaaの黒塗りが再登場したので,
インスタンス名か,空白キーフレームがアヤシイと思ったのです。


空白キーフレームもはさまず,
別のインスタンス名も付けていないのに,
2回もロードしなければならないという現象がなぜ起こるのかはすみませんがわかりません。
    • good
    • 0
この回答へのお礼

BlurFiltanさん、度々ありがとうございます。

意味の取り違い、失礼致しました。
BlurFiltanさんの書かれていた通り、インスタンス名や空白キーフレームを確認した
のですがそれらに問題は無かったので2つ目の●キーフレームのフレームアクションに
loadMovie("p1.jpg", "_root.aaa");を入れれば良いのかな?という
勝手な理解で挿入していた次第でした。

私自身が関係ないと思い、質問時にはお伝えしていなかったのですが
読み込んだ画像サイズがドキュメントサイズに合わせていない画像でも
すべて表示出来るようにと各ムービークリップのクリップアクションに

――――――――――――
onClipEvent (load) {
this._width = 300;
this._height = 350;
}
――――――――――――
http://oshiete1.goo.ne.jp/qa2068524.html
(↑ページを参照しました。)

上記のように書き込んでおりました。
BlurFiltanさんの回答を読ませて頂き、この命令が間違った動作をさせて
いるのだと思い、各ムービークリップから上記命令を削除すると
スムーズにクロスフェードの効果を出すことが出来ました♪
私にとっては、色々な説明を頂き大変勉強させて頂き良かったのですが
BlurFiltanさんには私の説明不足からお手数をおかけしてしまった事を反省しております。

画像サイズを指定したかったのは、外部画像差し換えの際に
300 x 350(pix) のサイズに処理してからサーバーへアップするば良いだけなのですが
縦横比が多少変わっても、違ったサイズ(pix)の写真にも対応出来るようにと考え
サイズ指定の命令を入れておりました。

onClipEvent (load)をムービークリップに設定する事により
2つ目の●キーフレーム位置で画像がアンロードされてしまっていると
いう理解で合ってますでしょうか?
ただ、onClipEvent (load)を参考書などで調べていたのですが
【ムービークリップがタイムライン上に登場した瞬間】と書かれているので
なぜ2つ目の●キーフレーム位置で画像がアンロードされてしまうのかがわかりません。
2つ目の●キーフレーム位置にはアクション無しでアルファ値(100%)
3つ目の●キーフレーム位置にもアクション無しでアルファ値(0%)
(共にインスタント名はaaa)

これらの設定とムービークリップにonClipEvent (load)でのサイズ指定は共存できないのでしょうか?
よろしくお願い致します。

お礼日時:2008/01/26 15:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!