- ベストアンサー
外部ファイルを使ったクロスフェードについて
- 外部画像ファイルを読み込んで3枚の写真をクロスフェードしながら移り変わる映像を作成したい。
- 現在、タイムライン上に3つのレイヤーを作成し、それぞれにムービークリップを配置している。
- 各レイヤーの2つ目のキーフレームから3つ目のキーフレームにかけてアルファを推移させ、クロスフェードしたいがうまくいかない。loadMovieNum()を使用すれば複数ファイルを読み込むことができると調べたが、どこに書き込むべきか分からない。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
よくわかりませんが, 各レイヤーの2つめの●のキーフレームにあるムービークリップのインスタンス名が怪しいと思います。 別の名前が付いているとか...。 たとえ, aaaに読み込まれた外部JPEGがアンロードされてしまったとしても, 元のaaaの黒い塗りの四角は復活しません。 黒い塗りの四角が復活したということは, 再びaaaがもとの状態で再登場したということになります。 aaaがもとの状態で再登場する場合は, インスタンス名がaaaではなくなったか, 空白キーフレームをはさんで間をおいて再登場したかのどちらかだと思います。
その他の回答 (2)
- BlurFiltan
- ベストアンサー率91% (1611/1754)
#1&2 です。 降参です。 #2のお礼で書かれていらっしゃる内容についてですが, たしかに onClipEvent(load) を書くと変になることは確認できました。 その後, 2つ目以降の ● のインスタンス名を付けてみたり取ってみたりしてみても, 挙動が変になるだけで,ぜんぜんうまく動きませんし, onClipEvent(load) は削除して, loadMovie ではなく MovieClipLoaderクラスのメソッドを使ってロードしてみてもやはり挙動不審な動きをします。 書かれていらっしゃるように, > これらの設定とムービークリップに > onClipEvent (load)でのサイズ指定は共存できないのでしょうか? どうもうまく共存できないようです。 よくわかりませんが,降参です。すみません。
お礼
BlurFiltanさん、ありがとうございます。 今の方法ではクロスフェードとサイズ指定が難しい事なんですね。 度々教えて頂き、大変勉強させて頂きました。 ありがとうございますm(_ _)m 他の回避策を、自分なりに勉強して頑張ってみます☆
- BlurFiltan
- ベストアンサー率91% (1611/1754)
#1です。 > 一度読み込んでいて、同じレイヤーにあるのであれば再度読み込みの > アクションが必要と考えておりませんでした。 > 今回のような作成方法ではその都度アクションが必要なのですね。 いえ, 決してそんなことはありません。 ロードは1回で良いのです。 #1では, > たとえ, > aaaに読み込まれた外部JPEGがアンロードされてしまったとしても, > 元のaaaの黒い塗りの四角は復活しません。 と書いただけで,2回ロードすべきとは書いていませんよ。 もしロードしたJPEGが, 何かの拍子にアンロード(ロードしたものがなくなる)されてしまっても, 空のムービークリップが残るだけですから, 読み込む前の最初の黒い塗りの四角にもどるはずはないということです。 いったんaaaが消えて(空白キーフレームなどをはさんで), 再び登場する場合はロードは2回必要ですが, そうでなければ,ロードは1回でOKです。 2回もロードすると当然, > 画像は表示されたのですがフェードアウトが始まる際に > 一瞬白く画像が飛んでしまいそこからフェードアウトが > 始まるというふうになってしまいます。 という現象が起こってしまいます。 #1を回答する前に, 実際に書かれていらっしゃる状況を作成したのですが, ご質問で書かれていらしゃるような現象(aaaが黒い塗りにもどってフェードアウトするという現象)は起こりませんでした。 そういう変な現象が起きるのはどういうときだろう? と思って, 間に空白キーフレームをはさんだとき↓ レイヤー1(aaa) ●――――→●○●―→● や,違うインスタンス名を付けたとき↓ レイヤー1 ●――――→●―→● aaa xxx をやってみると, aaaの黒塗りが再登場したので, インスタンス名か,空白キーフレームがアヤシイと思ったのです。 空白キーフレームもはさまず, 別のインスタンス名も付けていないのに, 2回もロードしなければならないという現象がなぜ起こるのかはすみませんがわかりません。
お礼
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)でのサイズ指定は共存できないのでしょうか? よろしくお願い致します。
お礼
ご指摘頂き、ありがとうございます。 各レイヤー2つ目の●キーフレームにインスタンス名は付けていたのですが 上記場所のフレームアクションにBlurFiltanさんの仰る通り loadMovie("p1.jpg", "_root.aaa");は入れておりませんでした。 一度読み込んでいて、同じレイヤーにあるのであれば再度読み込みの アクションが必要と考えておりませんでした。 今回のような作成方法ではその都度アクションが必要なのですね。 レイヤー1(aaa)の2つ目の●キーフレームのフレームアクションに loadMovie("p1.jpg", "_root.aaa");を記述してプレビューして 見ると画像が表示されました☆ ただ、画像は表示されたのですがフェードアウトが始まる際に 一瞬白く画像が飛んでしまいそこからフェードアウトが 始まるというふうになってしまいます。 やはり、読み込めたとしてもloadMovie()の方法では読み込み時に 一瞬間が空いてしまうという事なのでしょうか?