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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   迷える子羊の部屋【初心者専用】
     loadmovieで・・・
投稿するにはまず登録を

スレッド表示 | 古いものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
corone
Åê¹ÆNo.9214
投稿日時: 2004-7-16 16:16
新米
居住地:
投稿: 4
使用環境:
FlashMX 6.0
pen4 3Ghz 1GB
10.3 G4 800Mhz 640MB
Re: loadmovieで・・・
野中さん、ひろゆきさんありがとうございます。

僕の方で解釈を誤っていたようですね。
ご丁寧にどうもありがとうございます。

いろいろと考えた結果、やはり自分にはちょっと背伸びなスクリプティングのようで、
今回は2人の作業をずらして1つのflaファイルを扱うことにしました。

教えていただいたスクリプトは近々別のものでトライしてみます。
がんばって勉強します。どうもありがとうございました。
野中文雄
Åê¹ÆNo.9016
投稿日時: 2004-7-11 5:22
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: loadmovieで・・・
誤解があるようですので、敷衍してご説明します。

いわゆる「先読み」することと、「同時にロード」することとは、意味が異なります。私が問題があると申し上げたのは、後者です。
引用:
coroneさんは書きました:
ご指導のとおりです。今私が考えてるやり方では外部ファイルを同時にロードさせてしまうやり方になってしまうと思います・・・。

先の回答で指摘いたしましたのは、以下の2点です。このふたつを守られれば、「強引なやり方」にはなりません。
引用:
2人で同じファイルを作業をするのに便利な方法を考えていて、先ほどの質問のような発想になったのですが、根本的にファイルを分割してloadmovieで読み込ませよう、というのは強引なやり方だったみたいですね。

第1に、再生は外部SWFムービーのロード完了を待って、行う必要があるということです。
引用:
野中文雄は書きました:
第1フレームで停止したもともとの目的は、すべてのフレームがロードし終わってから再生を行いたいということではなかったかと思われます。そうだとすると、むしろポイントは、外部SWFのロードを待つことでしょう(第2フレームからの再生を再開するステートメントは、上述のとおりです)。

第2に、外部ファイルは、ひとつずつ読込むべきだということです。この点については、引用したリンク先のスレッドをご参照ください。
引用:
おそらくそのつぎの段階の問題として、外部ファイルを同時にロードすることは避けるべきです。

ただ、各外部SWFファイルの読込みをひとつずつ待って、つぎのロードを行うという処理は、初心者には少し難しいスクリプティングになるでしょう。


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

ひろゆき
Åê¹ÆNo.9012
投稿日時: 2004-7-11 1:42
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: loadmovieで・・・
引用:
根本的にファイルを分割してloadmovieで読み込ませよう、というのは強引なやり方だったみたいですね。

決して強引なやり方だとは思いません。
やり方次第でしょう。

あまり綺麗なサンプルとは言えませんが、参考までに。
サンプル

読み込む外部SWFは、a.swf・b.swf・c.swf・d.swfで、
それぞれ
1フレーム目でthis.stop();
2フレーム目からアニメーション開始。

読み込み元のメイン・ムービーのrootに、
空のMCを4つ、mc_a・mc_b・mc_c・mc_dを配置。
1フレーム目でthis.stop();
空のMCを1つ配置して、そこに、
onClipEvent (load) {
	flag = 0;
}
onClipEvent (enterFrame) {
	if (flag == 0) {
		_parent.mc_a.loadMovie("a.swf");
		flag ++;
	} else if (flag == 1) {
		if (_parent.mc_a.getBytesLoaded() >= _parent.mc_a.getBytesTotal() && _parent.mc_a.getBytesTotal() > 0) {
			flag ++;
		}
	} else if (flag == 2) {
		_parent.mc_b.loadMovie("b.swf");
		flag ++;
	} else if (flag == 3) {
		if (_parent.mc_b.getBytesLoaded() >= _parent.mc_b.getBytesTotal() && _parent.mc_b.getBytesTotal() > 0) {
			flag ++;
		}
	} else if (flag == 4) {
		_parent.mc_c.loadMovie("c.swf");
		flag ++;
	} else if (flag == 5) {
		if (_parent.mc_c.getBytesLoaded() >= _parent.mc_c.getBytesTotal() && _parent.mc_c.getBytesTotal() > 0) {
			flag ++;
		}
	} else if (flag == 6) {
		_parent.mc_d.loadMovie("d.swf");
		flag ++;
	} else if (flag == 7) {
		if (_parent.mc_d.getBytesLoaded() >= _parent.mc_d.getBytesTotal() && _parent.mc_d.getBytesTotal() > 0) {
			flag ++;
		}
	} else if (flag == 8) {
		_parent.gotoAndStop(2);
	}
}
と記述。(あまり綺麗なスクリプトじゃないですが)

2フレーム目でthis.stop();
空のMCを1つ配置して、そこに、
onClipEvent (load) {
	_parent.mc_a.gotoAndPlay(2);
}
onClipEvent (enterFrame) {
	if (_parent.mc_a._currentframe >= _parent.mc_a._totalframes) {
		_parent.mc_b.gotoAndPlay(2);
	}
	if (_parent.mc_b._currentframe >= _parent.mc_b._totalframes) {
		_parent.mc_c.gotoAndPlay(2);
	}
	if (_parent.mc_c._currentframe >= _parent.mc_c._totalframes) {
		_parent.mc_d.gotoAndPlay(2);
	}
	if (_parent.mc_d._currentframe >= _parent.mc_d._totalframes) {
		_parent.gotoAndStop(3);
	}
}
と記述。

3フレーム目でthis.stop();
corone
Åê¹ÆNo.9011
投稿日時: 2004-7-11 1:30
新米
居住地:
投稿: 4
使用環境:
FlashMX 6.0
pen4 3Ghz 1GB
10.3 G4 800Mhz 640MB
Re: loadmovieで・・・
ご指導ありがとうございます。
引用:
ご質問には、最低限ご使用の環境をご記入ください。

すみません、Flashのバージョンが抜けておりました。ありがとうございます。

引用:
第1フレームで停止したもともとの目的は、すべてのフレームがロードし終わってから再生を行いたいということではなかったかと思われます。そうだとすると、むしろポイントは、外部SWFのロードを待つことでしょう(第2フレームからの再生を再開するステートメントは、上述のとおりです)。

おそらくそのつぎの段階の問題として、外部ファイルを同時にロードすることは避けるべきです。

ご指導のとおりです。今私が考えてるやり方では外部ファイルを同時にロードさせてしまうやり方になってしまうと思います・・・。
2人で同じファイルを作業をするのに便利な方法を考えていて、先ほどの質問のような発想になったのですが、根本的にファイルを分割してloadmovieで読み込ませよう、というのは強引なやり方だったみたいですね。
ご指導のほど、どうもありがとうございました。
野中文雄
Åê¹ÆNo.8987
投稿日時: 2004-7-10 9:07
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: loadmovieで・・・
ご質問には、最低限ご使用の環境をご記入ください。
引用:
coroneさんは書きました:
今、アニメーションを作っておりまして、
----------
A→B→C→D
----------
と再生させて行きたいのですが、
...
A・B・C・Dの4つのSWFにして、loadmovieを使い、
Aが終わったらBを外部ファイルとして読み込み・・・という流れにしようと思っております。

つぎに、ご質問のポイントをご自身で明確にしましょう。2フレーム目から再生するステートメント自体は、つぎのとおりです。
ターゲットパス.gotoAndPlay(2);

あるいは、第1フレームで停止されているなら、つぎのステートメントでも同様です。
ターゲットパス.play();

しかし、それなら最初から、第1フレームで停止しておかなければよかったはずです。第1フレームで停止した理由を、よく考えてみましょう。
引用:
あらかじめ外部ファイルを読み込ませて1フレーム目でstopさせておいて、
後ほど2フレーム目から再生させる方法があるのでは!と思ったのですが、
loadmovieでどのようにしたら2フレーム目から再生できるのかわからず断念いたしました。

第1フレームで停止したもともとの目的は、すべてのフレームがロードし終わってから再生を行いたいということではなかったかと思われます。そうだとすると、むしろポイントは、外部SWFのロードを待つことでしょう(第2フレームからの再生を再開するステートメントは、上述のとおりです)。

おそらくそのつぎの段階の問題として、外部ファイルを同時にロードすることは避けるべきです。


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

corone
Åê¹ÆNo.8983
投稿日時: 2004-7-10 4:45
新米
居住地:
投稿: 4
使用環境:
FlashMX 6.0
pen4 3Ghz 1GB
10.3 G4 800Mhz 640MB
loadmovieで・・・
はじめての投稿です。どうぞ、よろしくお願いいたします。

今、アニメーションを作っておりまして、
----------
A→B→C→D
----------
と再生させて行きたいのですが、
各A?Dまでのファイルが重く書き出すのに時間がかかりすぎたり、
2人で1つのファイルを作業するので能率が悪いという理由から、
A?Dを同じ1つのSWFにするよりも
A・B・C・Dの4つのSWFにして、loadmovieを使い、
Aが終わったらBを外部ファイルとして読み込み・・・という流れにしようと思っております。

しかし、その際に、きれいにストリーミングさせるためには
各SWFをあらかじめダウンロードさせておかないならないことに気がつきました。

あらかじめ外部ファイルを読み込ませて1フレーム目でstopさせておいて、
後ほど2フレーム目から再生させる方法があるのでは!と思ったのですが、
loadmovieでどのようにしたら2フレーム目から再生できるのかわからず断念いたしました。

このような問題を解決することは可能でしょうか?
もし、可能でしたら教えていただけませんでしょうか?
よろしくお願いいたします。
スレッド表示 | 古いものから 前のトピック | 次のトピック | トップ

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