『ローディング☆ラブ』参加者および作品一覧 カテゴリ: 3.プレイベント『ローディング☆ラブ』  
ローディング☆ラブにて公開された作品の一覧です。


職人名 HacksionScript
サイト名 HacksionScript
作品アドレス http://www5d.biglobe.ne.jp/~lilac-xx/flash/loadingWithSinCurve.html
作品コメント
 一発目ということで小ネタです。どうぞ。

職人名 み~や
サイト名 Clairvoyance
作品アドレス http://clairvoyance.game-server.cc/tegakiLoading.html
作品コメント
 最初は全然ちがうものを予定してましたが、
 時間的に無理と判断して、方向を大きく転換しました。

職人名 k_
サイト名 C-axis
作品アドレス http://www.c-axis.jp/flash/loadinglove/loadinglove.html
作品コメント
 一発ネタ勝負。
 ローディング☆ラブの話してるときに一番最初に思いついたネタで。

職人名 くろるり
サイト名 蒼き旅人
作品アドレス http://iiaccess.net/upload/view.php/000446.swf
作品コメント
 ネットに個人で公開する作品としては処女作となっております
 ボタンをおすとローディングのグラフィックが変わる
 それだけです。前の方々にくらべて貧相です。
 ちなみにサイトはまだFLASH関連のサイトじゃありません
 FLASHをWebページで公開する方法がわからなかったため、
 間に合わせのイイ・アクセス様のアップローダーで失礼します。


職人名 void
サイト名 void element
作品アドレス http://void.heteml.jp/flash/loading_explosion/
作品コメント
 FGFに参加する余裕がなかったので、半ばヤケクソ気味で。
 ASらしいっちゃーASらしいと思います。

職人名 Zephyrus
サイト名 ZEPH
作品アドレス http://zeph.jp/swf/qth.html
作品コメント
 いま思いついてつくってみますた

職人名 パス
サイト名 パス
作品アドレス http://atsushi015.hp.infoseek.co.jp/damepo.html
作品コメント
 スケジュール遅らせたのに糞ネタでスマソ
 こんなのは立大のAO入試以来ですw

『ローディング☆ラブ』とは カテゴリ: 3.プレイベント『ローディング☆ラブ』  

FGF開催にあたり、容量が大きめのFlashコンテンツで表示される
「読み込み中」の画面、いわゆる『NowLoading』画面に特化した
プレイベント『ローディング☆ラブ』を行います。

開催主旨

・必然的に作品の規模が小さくなるため、出展への敷居が非常に低くなる

・今後、各自の作品で汎用的に使えるLoadingを作る機会になる。

・Loadingという限られた仕様下でいかに魅せるか、という縛りは
 各職人のモチベーション向上に一役買うことになる(かもしれない)。

・AS初心者がLoading処理に触れることによってASの基礎を覚えることができ、
 そこからASの楽しさが少しでもわかってもらえる(かもしれない)。


参加規約

・FGF06の開催前の25時間前から開催1時間前の期間内に、
 以下のテンプレートに従った形式で出展作品を
 FGF06公式スレッドへ各自で投下を行なっていただければ、
 該当アドレス内の作品をそのまま出展作品として扱います。

==============================
『ローディング☆ラブ』出展作品
==============================

職人名:(ハンドル名を入力して下さい。名無し可)
サイト名:(サイト名を入力して下さい。なし可)
作品アドレス:(作品アドレスを入力して下さい。必須)
作品コメント:(何かコメントがあったら入力して下さい。コメントなし可)

作品の公式サイト内で紹介:
(する/しない のどちらかを選択して下さい。なお未回答は紹介なしとして扱います)

なお、ローディング☆ラブの出展に際しては上記のテンプレを使うこと以外は
事前応募等は一切不要です。みなさんお気軽にご参加下さい!

よくある質問 カテゴリ: 3.プレイベント『ローディング☆ラブ』  


Q:ローディングとして実用的なものじゃなくてもいいの?
A:実用的なものでなくても構いません、好きなように作って下さい。


Q:ローディングも作れないほどの超初心者なんですが・・・
A:『5分でわかるローディングのつくりかた』という解説ページを
  用意してみました。こちらを読んでぜひともチャレンジしてみて下さい。


Q:ローディング処理だけだアッという間に読み込み終わっちゃって
  作りこんでもほとんど見れないんじゃないですか?
A:数KBのファイルサイズでもローディング処理を擬似的に体感できるよう
  ローディングシミュレータ用のスクリプトを用意しましたので、
  当プレイベントに出展予定の方は「『ローディング☆ラブ』用ローディングシミュレータ」
  のスクリプトをご利用下さい。


Q:プレイベントの名前が某イベントのノベルと同じなんですがw
A:念のため使用許可はもらっておきましたw
  この場をお借りしてそっちのローディング☆ラブのスタッフへ感謝いたします。

5分でわかるローディングのつくりかた カテゴリ: 3.プレイベント『ローディング☆ラブ』  


ローディングを作るにあたって最低限必要な情報と処理は

・読み込みが終わったかどうかを比較する。
・読み込みが終わった場合と終わってない場合の動きを決める
・読み込みが終わってない場合はその比較をひたすら繰りかえす

の3点です。上から順に説明していきましょう。

まず、比較対照として必要な情報は
・読み込み済みの容量
・ファイルの総容量
の2点ですね。そしてその2点はそれぞれ

getBytesLoaded(); //(読み込み済みの容量)


getBytesTotal(); //(ファイルの総容量)


という命令で取得することができます。
命令を日本語に訳すと、わりとそのままの意味ですね。
とりあえず使いやすいように変数に放り込んでおきましょう。
命令の内容を変数に入れるには、『 = 』を使います。

loaded = getBytesLoaded();//読み込み済みの容量を変数『loaded』に入れる
total  = getBytesTotal(); //ファイルの総容量を変数『total』に入れる


さて、次はそのふたつの命令を比較するための命令として、
if文を使ってみましょう。if文の基本書式は以下の通りです。

if(比較対照1 比較演算子 比較対照2){
	//比較結果が正しい場合の処理
}else{
	//比較結果が正しくない場合の処理
}

ローディング処理の場合、比較対照はファイルの総容量と読み込み済みの容量でしたね。
なので、先ほどファイルの総容量と読み込み済みの容量を取得した変数を
if文の比較対照に置きます。

loaded = getBytesLoaded();//読み込み済みの容量を変数『loaded』に入れる
total  = getBytesTotal(); //ファイルの総容量を変数『total』に入れる

if(loaded 比較演算子 total){
	//比較結果が正しい場合の処理
}else{
	//比較結果が正しくない場合の処理
}


次は『比較演算子』です。比較演算子には主に以下の種類があります。

A == B(AとBは同じ)
A != B(AとBは同じじゃない)
A < B(AよりBの方が大きい)
A > B(AよりBの方が小さい)
A >= B(AとBは同じか、Aの方が大きい)
A <= B(AとBは同じか、Bの方が大きい)

今回の場合、読み込みが完了しているかどうかを判断する・・・つまり、
『ファイルの総容量と読み込み済みの容量が同じかどうか』を比較すればいいので、
比較演算子は『 == 』か『 != 』を使えばいいことがわかりますね。
今回は『 == 』を使ってみましょう

loaded = getBytesLoaded();//読み込み済みの容量を変数『loaded』に入れる
total  = getBytesTotal(); //ファイルの総容量を変数『total』に入れる

if(total == loaded){//ファイルの総容量と読み込み済みの容量が同じかどうかを比較する
	//比較結果が正しい場合の処理
}else{
	//比較結果が正しくない場合の処理
}


『比較結果が正しい場合の処理』に関しては
本プレイベントの遊びどころの一部かと思いますので割愛します。
とりあえずデバッグの最中に読み込みが終了したことが明示的にわかるよう、
trace文を記載しておきましょう。

if(total == loaded){//ファイルの総容量と読み込み済みの容量が同じかどうかを比較する
	//比較結果が正しい場合の処理
	trace("読み込みが完了しました");
}else{
	//比較結果が正しくない場合の処理
}


trace文とはデバッグの際に利用する特別な命令で、
カッコ内で指定した文字列や変数の中身をデバッグウィンドウに出力することができます。
例えば変数loadedの中身を確認したい場合は

trace(loaded);


と記述します。
ローディング処理の開発中にこまめに変数の中身や処理の移行状態を確認したい場合は
このtrace文をどんどん使っていきましょう。


少し話が横道にそれましたね。
さて、最後の『読み込みが終わってない場合はその比較をひたすら繰りかえす』の
実現方法を考えてみましょう。
まずは比較を抜きにして一定の命令を繰り返す方法ですが、以下の2通りがあると思います。

・前述の『比較結果が正しくない場合の処理』でprevFrame(1フレーム前に移動する命令)
 を記載して繰り返しを実現する
・onEnterFrame(毎フレーム毎に処理を実行させる命令)を利用する

今回は初心者向けに簡単な前者の方法を利用してみましょう。
先ほどのコードの「比較結果が正しくない場合の処理」の部分に以下のコードを追加します。

loaded = getBytesLoaded();//読み込み済みの容量を変数『loaded』に入れる
total  = getBytesTotal(); //ファイルの総容量を変数『total』に入れる

if(total == loaded){//ファイルの総容量と読み込み済みの容量が同じかどうかを比較する
	//比較結果が正しい場合の処理
	trace("読み込みが完了しました");
}else{
	//比較結果が正しくない場合の処理
	prevFrame();
}

これを記述することにより、比較結果が正しくない(読み込み処理が終わってない)
場合は1フレーム前に戻ります。で、Flashのタイムラインというのは
『gotoAndStop()とstop()を実行しない限りは勝手にフレームを進めてくれる』
という特性があるため、prevFrame()によって1フレーム前に戻った後は、
すぐ次のフレームへの移動が行われます。
そして次のフレームではまた先ほど記載された比較処理が実行されるため、
結果的に『読み込みが終わってない場合はその比較をひたすら繰りかえす』
ということが実現できます。


これにてローディングの基本的な解説は終了です。

あとはローディング処理内で色々遊びを取り入れるための
ヒントを追記欄に記載しておきます。
もちろん、ここで提示しているヒント以外のことを
自分で色々調べてやってみてもいいです。というか大歓迎です。

それでは皆さん!楽しいローディングライフをー。
「5分でわかるローディングのつくりかた」の続きを読む
『ローディング☆ラブ』用Loadingシミュレータ カテゴリ: 3.プレイベント『ローディング☆ラブ』  

『ローディング☆ラブ』への出展にあたっては
下記のローディングシミュレータを利用されると大変便利です。
コード内の使用方法に従い、ぜひともご利用下さい。

(05/03追記:ソース内のコメント『1秒あたりで取得するswfの平均バイト数、つまり回線速度。』にて
コメントの記述間違いがあったのを修正しました。指摘してくれた本スレ>>136さんありがとー!)

/*==============================================================================

『ローディング☆ラブ』用ローディングシミュレータ

これってなに?
 実際のファイルサイズや回線速度をシカトして
 むりやりローディング画面を見せるようにするためのもの。


つかいかた
 このコードをそのまま1フレーム目の最上部のレイヤーにコピペするだけです。
 このコードを消せば普通のローディングになります。


つくったひと
 原案:◆FLASH44rww
 改造:◆nemu90kWw. ◆H0MotH/SqY
 実装:◆SW1/SWF8io
 スレ:http://pc8.2ch.net/test/read.cgi/swf/1108134271/ のひとたち


ちょさっけん
 好き勝手にしていいよー。

==============================================================================*/

/*----------------------------------------------------------------------------*/
//各種変数
/*----------------------------------------------------------------------------*/

//swfの仮想ファイルサイズ。
//初期値の"1000000"で約1MBをシミュレートしています。
//Loading画面を長く見せたい場合はこの数字を大きくし、
//短くしたい場合はこの数字を少なくして下さい。
var LL_getBytesTotal = 1000000;

//1秒あたりで取得するswfの平均バイト数、つまり回線速度。
//初期値の"4800"で約5KBをシミュレートします(だいたいナローバンドくらいの速さ)
var LL_currentLoadByte = 4800;

//鯖に対するリクエストの成功確率。(1~100)
//快適な鯖をシミュレートしたい場合は数字を100に近づけ、
//激重の鯖をシミュレートしたい場合は数字を1に近づけて下さい。
var LL_AccessPercent = 50;

//読み込み済ファイルサイズ【変更不可】
var LL_nLoaded = 0;

//getBytesLoadedメソッドの呼び出し時のミリ秒【変更不可】
var LL_millSec = 0;


/*----------------------------------------------------------------------------*/
//getBytesTotalおよびgetBytesLoadedのオーバーライド部【変更不可】
/*----------------------------------------------------------------------------*/

function getBytesTotal() {
	return LL_getBytesTotal;
}

function getBytesLoaded() {
	var _r		= 0;
	var absSec	= (getTimer() - LL_millSec) / 1000;
	if(Math.round(Math.random()*100) < LL_AccessPercent){
		var _num = Math.floor(LL_currentLoadByte*absSec*Math.random());
		_r = Math.min(getBytesTotal(), LL_nLoaded+=_num);
	}else{
		_r = LL_nLoaded;
	}
	LL_millSec = getTimer();
	
	return _r;
}

/*----------------------------------------------------------------------------*/