トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   迷える子羊の部屋【初心者専用】
     loadMovieで表示するswfの読み込み時に
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
andyy
Åê¹ÆNo.13380
投稿日時: 2004-12-16 19:52
新米
居住地:
投稿: 2
使用環境:
3.6
7.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");
}
}
-----------------------------------------------------
などと入れてみたりしましたが、動くはずもなく。。。
参考になるスクリプトはありますでしょうか。
宜しくお願い致します


----------------

andyy

ひろゆき
Åê¹ÆNo.13383
投稿日時: 2004-12-16 20:32
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

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
使用環境:
3.6
7.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さんの手法に少しは近づいてますでしょうか?


----------------

andyy

野中文雄
Åê¹ÆNo.13397
投稿日時: 2004-12-17 6:42
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: loadMovieで表示するswfの読み込み時に
(1)「フレームアクション」は、そのフレームの描画直前に処理されます。つまり、「ボタン押下」をしようがしまいが、実行されます。

(2)「_root.mc1.ダミーmc」は、「変数」ですか? 以下のスクリプトを拝見すると、MovieClipインスタンスのように思えます。MovieClipインスタンスに文字列("a(表示したいファイル).swf")を代入することは問題があります。MovieClipインスタンスの存在は消滅しませんが、同名のパスに変数として文字列が設定されてしまいます(もちろん、文字列に対しては、loadMovie()というメソッドを呼出すこともできません)。
引用:
andyyさんは書きました:
◆1)ボタン押下で、読み込むファイルを決定する”は、
各ボタンのフレームアクションに変数定義 (varで)しておくという事なのでしょうか??やってみたのは、各ボタンレイヤーにフレームアクションで下記を記述です。
  (_root.mc1.ダミーmc="a(表示したいファイル).swf"); 

まず、何が起こったのかを確認しましょう。殺人事件でいえば、誰が殺されたのか「ガイシャの特定」です。そして、不明確な点があったら、小マメにオンラインヘルプ、とくに「ActionScriptリファレンスガイド」を参照しましょう。
引用:
◆2)?4)は、
各ボタンのボタンアクションのon(release)内に下記を記述してみました。
loadframe = _root.mc1.ダミーmc._currentframe();
trace(loadframe);
if(loadframe == 10) //読込み済の場合
{
    trace("読込み済の場合");
    _root.mc1.ダミーmc.gotoAndPlay("_fadeout");
}
if(loadframe == 20) //fadeout終了フレームの場合
{
    trace("fadeout終了フレームの場合");
    _root.mc1.ダミーmc.loadMovie("workfrow.swf");}
if(loadframe < 10) //読込み未の場合
{
    trace("読込み未の場合");
    _root.navi.waku_w.loadMovie("workfrow.swf");
}
else 
{
    trace("いずれにも該当しない場合");
}

◆ダミーmcのmcアクションは相変わらずonClipEvent (data)..のままです。

上記状態ですと、入れ替わってb.swfのfadeinが始まり、fadeoutは全く無視状態でした。


----------------
 

ひろゆき
Åê¹ÆNo.13411
投稿日時: 2004-12-17 13:14
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

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の読み込み時に
>ひろゆきさん

教えていただいたスレで、根本的な考え方の違いに改めて気付きました。ご親切に、ありがとうございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops