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

パスワード:


パスワード紛失

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

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
tolchoc
Åê¹ÆNo.5822
投稿日時: 2004-4-2 3:28
新米
居住地:
投稿: 17
使用環境:
Flash MX
Mac OSX 10.4.11
外部swf読み込み時のナウローディング表示
こんにちは。
お世話になります。

外部swfを読込む際にナウローディング(プリロード?)をつけたいのです。
しかも今回は外部swf(a.swf)の任意のフレームへとばすので、
(以前「外部swfファイルからのloadMovieターゲット指定」というスレッドでお世話になりました)
読み込み側のswf(main.swf)のほうにナウローディングのしくみをつけたほうが
よい気がしているのですが・・・・
過去ログから検索し、「外部jpgを読み込む際にローディングをつけたい」を参考にさせていただこうと思いましたが、
巧-TAQUMI-さんの書かれた
引用:
loadMovie ("jpgの場所",my_mc);
my_mc.getBytesLoaded();
my_mc.getBytesTotal();

というものは読み込み側のswf(main.swf)のほうに書くものらしいですね?
しかししくみがわかりません‥‥
ナウローディングの表示のムービーを別に作るのですか?
それとも同じタイムラインにナウローディングのアニメーションを作ってgotoさせるのでしょうか?
もうすこし詳しくお教え願えませんでしょうか?

------------------------
現在のスクリプトは
読み込み側のswf(main.swf)の、読込み用のMC[myMovieClip]に
引用:
onClipEvent (load) {
gotoAndStop(_parent.beginFrame);
}

読み込み側のswf(main.swf)の、リンクボタンに
引用:
on (release) {
gotoAndPlay("sound");
beginFrame = "a-1";
myMovieClip.loadMovie("a.swf");
}

……gotoAndPlay("sound");とは、ラベル"sound"のフレームからはサウンドが入っており、外部swfを読込んだ際にはBGMが流れるしくみになっています
------------------------
という状況です。

以前にも話題になった、との一文もみましたが、参考スレ&MLをみつけることができませんでした。重複していたらすみません。

どうか、よろしくお願いいたします。
ゲスト
Åê¹ÆNo.5825
投稿日時: 2004-4-2 5:11
Re: 外部swf読み込み時のナウローディング表示
こんにちは。

Ultrashockのチュートリアル等、参考になるサイトは結構あると思いますよ。
引用:
しかししくみがわかりません‥‥
ナウローディングの表示のムービーを別に作るのですか?
それとも同じタイムラインにナウローディングのアニメーションを作ってgotoさせるのでしょうか?
もうすこし詳しくお教え願えませんでしょうか?
野中文雄
Åê¹ÆNo.5829
投稿日時: 2004-4-2 7:27
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: 外部swf読み込み時のナウローディング表示
プリロード処理は別にして、外部SWFの任意のフレームに移動すること自体はおできになっているのでしょうか?
引用:
tolchocさんは書きました:
しかも今回は外部swf(a.swf)の任意のフレームへとばすので、

onClipEvent (load)ハンドラは、読込み用のMovieClipインスタンスが表示されたときにも呼出されます。

gotoAndStop()アクションに渡される引数が存在しなかったり(未定義値undefined)、そのフレームがロードされていなければ、ステートメントは無視されます。けれど、不要な呼出しが無視されるからといって、放置しておくのはトラブルのもとになる可能性もあります。

つまり、この時点でロード待ちをした方がよいということです。その点を理解されれば、ローディングの表示をどのように処理すべきかも明かになると思います。
引用:
読み込み側のswf(main.swf)の、読込み用のMC[myMovieClip]に
onClipEvent (load) {
	gotoAndStop(_parent.beginFrame);
}


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

サブリン
Åê¹ÆNo.5844
投稿日時: 2004-4-2 13:37
芸人
居住地: 東京世田谷区
投稿: 354
使用環境:
Snow Leopard
Windows 7
CS4-5/FDT
Re: 外部swf読み込み時のナウローディング表示
引用:
onClipEvent (load)ハンドラは、読込み用のMovieClipインスタンスが表示されたときにも呼出されます。


言い換えると、loadって書いてますが、これはそのスクリプトを書いたMCがload、つまり「表示」された時に実行されるんです。ムービーがサーバよりロード(loadmovie)された時では無いんです。似たコトバがあるんで混乱しないよーにねん。
ムービーのロード処理は、よく解っていない時は、読み込む外部ムービー自体に、それぞれ入れた方がいいと思います。つまり、通常のthis.getBytesLoaded、this.getBytesTotalでの処理を理解することが大切です。

で、できるようになったら、メインムービーに配置した方が
・ロード待ちの仕組みがひとつなのでラクチン
・ロード待ちを軽くつくる必要が無い>凝ることができる>というのは、100コの外部ファイルに500Kずつカッコイイロード待ちを配置したら大変な量ですが、100コの外部ファイルを読み込むメインの仕組みに、500Kでも1回しか読み込まない。
などの利点があります。この場合は、やろうとしてるように、ターゲットとなるダミーのMCがtarget_mcって名前でしたら、thisではなく、target_mc.getBytesLoaded…って感じになるワケですね。

ヘンにいろんなところにスクリプト書かない方がいいですよ。特にダミーのMCには何も書かない方が得策だと思います。


----------------
Jin Saburi / SABURI.COM / lash芸人
contact [ jin[at]saburi.com ]
website [ SABURI.COM ]

tolchoc
Åê¹ÆNo.5956
投稿日時: 2004-4-5 9:28
新米
居住地:
投稿: 17
使用環境:
Flash MX
Mac OSX 10.4.11
Re: 外部swf読み込み時のナウローディング表示
みなさん、ご返答ありがとうございました。しばらくここへ訪れられず失礼しました。熱がでて臥せっていたもので‥‥
しかしなんとかつくることができました。
ただmacのブラウザでの表示はうまくいきましたが、実際はexeファイルにしたいので、そっちの確認はまだできてないのですが…

●ありがとうございます。これからここのサイトも参考にするようにします。
引用:
Ultrashockのチュートリアル等、参考になるサイトは結構あると思いますよ。


●外部SWFの任意のフレームへの移動はできています。リンクボタンに下記のように"sound"というフレームにgotoするように書き、"sound"のフレームから読込み用のMC[myMovieClip]が表示されるようにしているのです。
引用:
on (release) {
gotoAndPlay("sound");
beginFrame = "no1-0";
myMovieClip.loadMovie("no1.swf");
}


●読込み用のMC[myMovieClip]に書いた
gotoAndStop(_parent.beginFrame);
がおかしいということでしょうか……しかしなにがおかしいのかわかりません。先ほど上のほうで書いたリンクボタンと連携して、外部swfファイルの任意のフレームに飛ぶように設計したつもりなんですが………
引用:
gotoAndStop()アクションに渡される引数が存在しなかったり(未定義値undefined)、そのフレームがロードされていなければ、ステートメントは無視されます。けれど、不要な呼出しが無視されるからといって、放置しておくのはトラブルのもとになる可能性もあります。


●以前読み込む外部ムービー自体に入れたらなぜかうまく行かなかったんですよね。それで読み込み側のswfに入れるやりかたが知りたいと思っていたのです。そしてあやうくダミーのMCにスクリプト書き加えるところでした……ありがとうございます。ナニがヘンなところなのか解ってないのが口惜しいです、これからの勉強ですね。
引用:
ヘンにいろんなところにスクリプト書かない方がいいですよ。特にダミーのMCには何も書かない方が得策だと思います。


●これはナウローディング表示のMCに書くといいのでしょうか?今そうしてみているのですがうまくいきません。引用:
この場合は、やろうとしてるように、ターゲットとなるダミーのMCがtarget_mcって名前でしたら、thisではなく、target_mc.getBytesLoaded…って感じになるワケですね。


ナウローディング表示のMC
引用:
onClipEvent (load) {
_root.stop();//停止
}

onClipEvent (enterFrame) {
if (_parent.myMovieClip.getBytesLoaded() >= _parent.myMovieClip.getBytesTotal()) {
_root.play();//再生
}
}


上記のように書いているのですが、Macではしばらく静止状態のナウローディング表示のMCが表示されたのちに一瞬アニメーションが動き、本編に入ります。
Winでは空白画面が続き、一瞬アニメーションが動き、本編に入ります。
読込む外部swfは動画movファイルが埋め込んであり、かなり重く43MBもあります。(ネット用ではないので)この重さも関係しているのでしょうか?
野中文雄
Åê¹ÆNo.5959
投稿日時: 2004-4-5 10:20
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: 外部swf読み込み時のナウローディング表示
onClipEvent (load)ハンドラに記述するのは、問題があるということです。理由は、サブリンさんのいわれるとおりです。
引用:
サブリンさんは書きました:
言い換えると、loadって書いてますが、これはそのスクリプトを書いたMCがload、つまり「表示」された時に実行されるんです。ムービーがサーバよりロード(loadmovie)された時では無いんです。似たコトバがあるんで混乱しないよーにねん。

試しに、以下のtrace()ステートメントを挿入して、[出力]ウィンドウの結果を確認してください。おそらく、意図しない出力が1回分多いはずです。
引用:
tolchocさんは書きました:
●読込み用のMC[myMovieClip]に書いた
gotoAndStop(_parent.beginFrame);
trace("=====[called]");  // 以下挿入
trace(_parent.beginFrame);
trace(_currentframe);

がおかしいということでしょうか……しかしなにがおかしいのかわかりません。先ほど上のほうで書いたリンクボタンと連携して、外部swfファイルの任意のフレームに飛ぶように設計したつもりなんですが………

以下のスクリプトは、読込まれる側のSWF内にあるMovieClipインスタンスに設定されているのでしょうか? 読込むベースのムービーにスクリプトを設定した方が、ローディングアニメーションの使い回しがききます。
引用:
ナウローディング表示のMC
...
onClipEvent (enterFrame) {
	if (_parent.myMovieClip.getBytesLoaded() >= _parent.myMovieClip.getBytesTotal()) {


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

サブリン
Åê¹ÆNo.5960
投稿日時: 2004-4-5 10:22
芸人
居住地: 東京世田谷区
投稿: 354
使用環境:
Snow Leopard
Windows 7
CS4-5/FDT
Re: 外部swf読み込み時のナウローディング表示
引用:
onClipEvent (load) {
_root.stop();//停止
}

onClipEvent (enterFrame) {
if (_parent.myMovieClip.getBytesLoaded() >= _parent.myMovieClip.getBytesTotal()) {
_root.play();//再生
}
}


え?自分を再生したいんですか?_rootを再生とか止めたりしたいようですけど。
自分が読まれてるかどうかでしたら、_parent.myMovieClip.getBytesTotalではなく、_parent.getBytesTotalとか_root.getBytesTotalという風になるかと。再生停止するやつと同じでええのでは。


----------------
Jin Saburi / SABURI.COM / lash芸人
contact [ jin[at]saburi.com ]
website [ SABURI.COM ]

野中文雄
Åê¹ÆNo.5969
投稿日時: 2004-4-5 10:37
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: 外部swf読み込み時のナウローディング表示
失礼しました。パスを読み違えました。_parentでなく_parent.myMovieClipだったのですね。外部SWF読込みのターゲットMovieClip(myMovieClip)と同じ階層に、ロード待ち処理用のインスタンスを配置されたということですね。
引用:
サブリンさんは書きました:
onClipEvent (enterFrame) {
if (_parent.myMovieClip.getBytesLoaded() >= _parent.myMovieClip.getBytesTotal()) {

...
自分が読まれてるかどうかでしたら、_parent.myMovieClip.getBytesTotalではなく、_parent.getBytesTotalとか_root.getBytesTotalという風になるかと。再生停止するやつと同じでええのでは。


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

tolchoc
Åê¹ÆNo.5983
投稿日時: 2004-4-5 13:38
新米
居住地:
投稿: 17
使用環境:
Flash MX
Mac OSX 10.4.11
Re: 外部swf読み込み時のナウローディング表示
どうも説明が下手で誤解を産んでますね、すみません。
下記のようにおっしゃる通りにしてます。
nowloadingと表示するアニメーションのMCに書いたものでした。
引用:
失礼しました。パスを読み違えました。_parentでなく_parent.myMovieClipだったのですね。外部SWF読込みのターゲットMovieClip(myMovieClip)と同じ階層に、ロード待ち処理用のインスタンスを配置されたということですね。


外部swfのサイズが軽いものならばうまく動きました。
ローカルだと早すぎて確認できないので、サーバにアップしてみてみたら、望み通りに動いてました。
しかし‥‥やはり43MBある外部swfでは、nowloadingと表示される前にしばしのnowloading静止画面表示が出ます。別の表現しますとnowloadingのアニメーションの1フレーム目で止まったまま動かず、最後一瞬動いたかと思うと本編に入ってしまうのです。
これはやっぱり重すぎるからなのでしょうね???
うまく動くものと全く同じスクリプトなのですから・・・
サブリン
Åê¹ÆNo.5988
投稿日時: 2004-4-5 13:55
芸人
居住地: 東京世田谷区
投稿: 354
使用環境:
Snow Leopard
Windows 7
CS4-5/FDT
Re: 外部swf読み込み時のナウローディング表示
うーん、一概に言えませんねえ。40MBクラスのswfでボクのプロジェクトとかは、普通に動いてますし、ファイルが大きすぎるから、ってことは無いと思います。
やっぱりなんか細かいところに問題があるかと思います。
サンプルをアップしたら?実際の仕組みの。


----------------
Jin Saburi / SABURI.COM / lash芸人
contact [ jin[at]saburi.com ]
website [ SABURI.COM ]

(1) 2 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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