![]() ![]() ![]() | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
andyy | Åê¹ÆNo.13380 投稿日時: 2004-12-16 19:52 |
新米 ![]() ![]() 居住地: 投稿: 2
使用環境:
![]() ![]() MX2004 |
loadMovieで表示するswfの読み込み時に ダミーのmcに、ボタンを押すたびに複数のswfが入れ替わるものを作っております。
onClipEvent (data)で読み込み完了後に任意のフレームから表示させてます。 任意のフレームからの読み込みは出来、今度は別swfを読み込む際、既に読み込んであるswfをフェードアウトさせながら入れ替えたいのですが、うまくいきません。考え方が根本的に間違っているかもしれませんが、どうかアドバイスをおねがいいたします。 file構造---- ・main.swf →_root.mc1上に(ボタンa,b,c)、(ダミーmc) ・a.swf →(fadeinトゥイーン)、(fadeoutトゥイーン) ・b.swf → 〃 ・c.swf → 〃 ------------ main.swf内に空のmcが一つあり、ボタンa,b,cそれぞれからボタンアクションで(ボタンaの場合) ----------------------------------------------------- on(release) { _root.mc1.ダミーmc.loadMovie("a.swf"); } ----------------------------------------------------- ダミーmcのmcアクションに ----------------------------------------------------- onClipEvent (data) { if (this.getBytesTotal()>0 && this.getBytesLoaded()>=this.getBytesTotal()) { this.gotoAndPlay("_fadein"); } else { this.stop(); } } ----------------------------------------------------- 上記状態に、 a.swfが既に読み込まれている時にボタンbを押すと、a.swfのfadeoutが始まるフレームを読み込みつつ、b.swfのfadein開始のフレームを読み込むという動作は付け足せるのでしょうか?? on(release)に if文を ----------------------------------------------------- on(release) { _root.mc1.ダミーmc.loadMovie("b.swf"); if(_root.mc1.ダミーmc._currentframe==10) { _root.mc1.ダミーmc.gotoAndPlay("_fadeout"); } } ----------------------------------------------------- などと入れてみたりしましたが、動くはずもなく。。。 参考になるスクリプトはありますでしょうか。 宜しくお願い致します
|
ひろゆき | Åê¹ÆNo.13383 投稿日時: 2004-12-16 20:32 |
ちょんまげら ![]() ![]() 居住地: 東京砂漠 投稿: 4403
使用環境:
![]() ![]() Safari 6.1 |
Re: loadMovieで表示するswfの読み込み時に a.swfのfadeoutとb.swfのfadeinを同時に進行させたいということでしょうか?
だとしたら、同じダミーMCにa.swfとb.swfを読み込ませる以上、 無理ではないでしょうか? ダミーMCを2つ用意して、別々に読み込ませる方向で考えてみてはいかがでしょう? |
rin-ko | Åê¹ÆNo.13384 投稿日時: 2004-12-16 21:00 |
職人 ![]() ![]() 居住地: 東京 投稿: 397
使用環境:
MacOSX10.5/10.4 WinXP SP3 MX2004Pro/CS3 |
Re: loadMovieで表示するswfの読み込み時に andyyさん、こんにちは。
ひろゆきさんがおっしゃる通り、ロード先がひとつならクロスフェードはできません。 フェードアウトしてフェードインという動きならできますが、考え方は少し変えなくてはいけませんね。 先にa.swfが読み込まれていたとしても _root.mc1.ダミーmc.loadMovie("b.swf"); この時点で、_root.mc1.ダミーmcの内容はいったんはクリアされてしまうので、a.swfを制御することはもうできません。 そこで、以下のような順番で処理をすれば、うまくゆくと思います。 1)ボタン押下で、読み込むファイルを決定する (_rootの変数などにその情報を入れておきます。例_root.mc_name="b.swf";) 2)_root.mc1.ダミーmcに既に外部swfが読み込まれているかを確認する (_root.mc1.ダミーmcのフレーム数あたりを取得すればよいかと思います) 3)その結果、外部swfが: a)読み込まれてない場合、以下を実行 _root.mc1.ダミーmc.loadMovie(_rootの変数に入れておいたファイル名); b)読み込まれている場合、以下を実行 _root.mc1.ダミーmc.gotoAndPlay("_fadeout"); 4)b)の場合、_root.mc1.ダミーmcのフェードアウトが終わったら、以下を実行 _root.mc1.ダミーmc.loadMovie(_rootの変数に入れておいたファイル名); (簡単なのは、ロードするa.swf、b.swf、b.swfの各最終フレームに以下のアクションを設定しておくことでしょうか) this.loadMovie(_rootの変数に入れておいたファイル名); それぞれのボタンに全部のアクションを書くと面倒なので、_rootのfunction()とかにして呼び出すと楽かな。 スクリプターじゃないのでもっとスマートな方法もあるかもですが、ご参考までに。 |
andyy | Åê¹ÆNo.13394 投稿日時: 2004-12-17 2:42 |
新米 ![]() ![]() 居住地: 投稿: 2
使用環境:
![]() ![]() MX2004 |
Re: loadMovieで表示するswfの読み込み時に ひろゆきさん、rin-koさん
ご返信ありがとうございます。未だつまづいております(TT) >ひろゆきさん 当初はダミーmcを複数用意して表示させ(fadein/out無し)、swapdepsでクリック時に前面表示させていたのですが、複数枚swfを表示させるより、入れ替わる方が良いと思い、ダミーを1つにしました。すると途切れ具合が気になってしまい、このような事態であります。。 >rin-koさん フェードアウト後フェードインをやってみようと思います。 functionはまた改めてお勉強です、各ボタンに記述する形で色々とやってみたのですが、 ◆”1)ボタン押下で、読み込むファイルを決定する”は、 各ボタンのフレームアクションに変数定義 (varで)しておくという事なのでしょうか??やってみたのは、各ボタンレイヤーにフレームアクションで下記を記述です。 ------------------------------------------------ (_root.mc1.ダミーmc="a(表示したいファイル).swf"); ------------------------------------------------ ◆2)?4)は、 各ボタンのボタンアクションのon(release)内に下記を記述してみました。 ------------------------------------------------ loadframe = _root.mc1.ダミーmc._currentframe(); if(loadframe == 10) //読込み済の場合 {_root.mc1.ダミーmc.gotoAndPlay("_fadeout");} if(loadframe == 20) //fadeout終了フレームの場合 {_root.mc1.ダミーmc.loadMovie("workfrow.swf");} if(loadframe < 10) //読込み未の場合 {_root.navi.waku_w.loadMovie("workfrow.swf");} ------------------------------------------------ ◆ダミーmcのmcアクションは相変わらずonClipEvent (data)..のままです。 上記状態ですと、入れ替わってb.swfのfadeinが始まり、fadeoutは全く無視状態でした。 私の使ったスクリプトが全く違うか、ifの記述法がいけないかと思ってみたりしますが、上記はrin-koさんの手法に少しは近づいてますでしょうか?
|
野中文雄 | Åê¹ÆNo.13397 投稿日時: 2004-12-17 6:42 |
ちょんまげら ![]() ![]() 居住地: 東京 投稿: 4531
使用環境:
![]() ![]() ![]() |
Re: loadMovieで表示するswfの読み込み時に (1)「フレームアクション」は、そのフレームの描画直前に処理されます。つまり、「ボタン押下」をしようがしまいが、実行されます。
(2)「_root.mc1.ダミーmc」は、「変数」ですか? 以下のスクリプトを拝見すると、MovieClipインスタンスのように思えます。MovieClipインスタンスに文字列("a(表示したいファイル).swf")を代入することは問題があります。MovieClipインスタンスの存在は消滅しませんが、同名のパスに変数として文字列が設定されてしまいます(もちろん、文字列に対しては、loadMovie()というメソッドを呼出すこともできません)。 引用: andyyさんは書きました: まず、何が起こったのかを確認しましょう。殺人事件でいえば、誰が殺されたのか「ガイシャの特定」です。そして、不明確な点があったら、小マメにオンラインヘルプ、とくに「ActionScriptリファレンスガイド」を参照しましょう。 引用: ◆2)?4)は、 |
ひろゆき | Åê¹ÆNo.13411 投稿日時: 2004-12-17 13:14 |
ちょんまげら ![]() ![]() 居住地: 東京砂漠 投稿: 4403
使用環境:
![]() ![]() Safari 6.1 |
Re: loadMovieで表示するswfの読み込み時に 引用:
複数枚swfを表示させるより、入れ替わる方が良いと思い、ダミーを1つにしました。すると途切れ具合が気になってしまい、このような事態であります。。 座席が1つしかなくて、そこにAさんとBさんが同時に入れ替わるのは、無理でしょう? ということを申し上げたのですが・・・。 同時に入れ替わっているように見えるためには、 座席を2つ用意するなどして、それを前後に配置して、 そのうえで、Aさんを立ち上がらせながら、Bさんを座らせる。 これを前から見れば、同時に動いているように見えますね。 swfじゃなくてjpgでフェイドイン/オウトするものを ちょうど作ろうとしているところだったので、 「サンプル」 をあげておきます。参考になれば。 考え方 まず、1.jpgを先に読み込んでおく。 1.jpgの読み込みが完了したら、2.jpgを読み込んでおいてfadeinの準備しておく。 2.jpgの読み込みが完了したら、ボタンを表示する。 ボタンを押すと、1.jpgの上に、2.jpgを持ってきて、2.jpgをfadeinさせる。 2.jpgのfadinが終わったら、次の3.jpgの読み込んでfadeinの準備しておく。 3.jpgの読み込みが完了したら、ボタンを表示する。
|
manatea | Åê¹ÆNo.33534 投稿日時: 2007-6-1 9:42 |
半人前 ![]() ![]() 居住地: Saitama 投稿: 41
使用環境:
.WindowsXP SP2 .Flash8 .FlashPlayer8 .winIE6.0 .winNS7.1 |
Re: loadMovieで表示するswfの読み込み時に >ひろゆきさん
教えていただいたスレで、根本的な考え方の違いに改めて気付きました。ご親切に、ありがとうございました。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |