Flash/ActionScript

シンプルなローディングバーを作る(2ページ目)

大容量のFlashムービーには必須のローディング画面を作成します。ファイル容量の取得方法などを基本をここでマスターしてオリジナルローディングバーを作成しましょう。

執筆者:渡辺 大介

Flash自体のファイル容量を取得して表示する

ローディングバーの仕組みは以下の形をとります。

1) Flash自体のファイル全体の容量を取得する
2) 現在ダウンロードした容量を取得し全体の容量と比較する
3) 2の比率に合わせてローディングバーの幅を変更する
4) 全てダウンロードしたら「start」フレームに移動する

この仕組みをActionScriptで表現していきます。

1. 配置されているムービークリップ「loading」に以下のActionScriptを記述します。
 onClipEvent(load){

	totalSize = _root.getBytesTotal();
	nowLoaded = _root.getBytesLoaded();


	if(totalSize == nowLoaded){
		gotoAndPlay("start");
	}else{
		_root.stop();
	}
}

onClipEvent(enterFrame){
	nowLoaded = _root.getBytesLoaded();
	
	if(totalSize == nowLoaded){
		gotoAndPlay("start");
	}else{
		barWidth = nowLoaded/totalSize*100;
		bar._xscale = barWidth;
	}
}
長いので少しずつ見ていきましょう。

上部の「onClipEvent(load){}」内に注目してください。
 totalSize = _root.getBytesTotal()
nowLoaded = _root.getBytesLoaded();


if(totalSize == nowLoaded){
		gotoAndPlay("start");
	}else{
		_root.stop();
	}
この部分は既にこのムービーを過去に表示していて、ローディング画面を表示する必要がない場合、本編にスキップする記述です。
1行目では、「_root.getBytesTotal()」を使用して、このムービー全体の容量を取得しています。
2行目では「_root.getBytesLoaded()」を使用して、現在までにダウンロードされた容量を取得しています。
以降のif文でこの二つが同じ場合、つまりダウンロードが完了している場合本編にスキップ、それ以外の場合はタイムラインを止め、以下の記述を実行するという構造です。

onClipEvent(enterFrame){
	nowLoaded = _root.getBytesLoaded();
	
	if(totalSize == nowLoaded){
		gotoAndPlay("start");
	}else{
		barWidth = nowLoaded/totalSize*100;
		bar._xscale = barWidth;
	}
}
次に「onClipEvent(enterFrame){}」内の記述について注目してください。
onClipEvent(enterFrame){}はタイムラインの進行に関係なく、1フレーム時間が経過する毎に{}内の処理を実行します。
2行目は先ほど同様現在のダウンロードの進行具合を取得しているので、enterFrameを用いて繰り返しダウンロードの進行を監視しています。

以降のif文は先ほど同様ですが、後半に注目してください。
barWidth = nowLoaded/totalSize*100;
bar._xscale = barWidth;
1行目で現在のダウンロードした容量を全体の容量を割り、100をかけています。これによってダウンロードの進行を%表示に変換しています。
2行目でムービークリップ「bar」の横幅を変更しています。「_xscale」というのはムービークリップの横幅(%)に対応しているプロパティです。


これで完成です。
完成したファイルをダウンロード


ローディングバーは良く目にするものです。ただ、元々Flashはダウンロードしながら再生する機能が備わっています。これを利用して長いムービーではダウンロード待ちを極力しないで済むような設計をすることが本来優先すべき課題です。

とは言え、どうしてもローディング待ちが発生するとき、面白くかっこいいローディングバーがあれば待ち時間もユーザに負担をかけませんね。見る人の立場に立って考えて、ローディングやファイルの容量というものを決めていってください。


【関連記事】
グラフィカルなローディングバーを作る
【編集部おすすめの購入サイト】
楽天市場で Flash 関連の書籍を見るAmazon で Flash 関連の書籍を見る
  • 前のページへ
  • 1
  • 2
※記事内容は執筆時点のものです。最新の内容をご確認ください。
※OSやアプリ、ソフトのバージョンによっては画面表示、操作方法が異なる可能性があります。

あわせて読みたい

あなたにオススメ

    表示について

    カテゴリー一覧

    All Aboutサービス・メディア

    All About公式SNS
    日々の生活や仕事を楽しむための情報を毎日お届けします。
    公式SNS一覧
    © All About, Inc. All rights reserved. 掲載の記事・写真・イラストなど、すべてのコンテンツの無断複写・転載・公衆送信等を禁じます