ローディング06 - テキストボックスに数字で%表示 | FLASHプチ講座ブログ

FLASHプチ講座ブログ

FLASHのプチ講座ブログ。ActionScript3.0勉強中。

近日公開(多分今日)と言いつつ、
多分4日ほど経ってしまいました...

うれしいコメントもいただいたので調子にのって更新します。


今日はテキストフィールドに、
ファイルが読み込まれた数字を%であらわしたものを
表示してみましょう。


-------------------------------------------------------
前回つくったバーが伸びるムービークリップが入ったファイルをあけて、
メインタイムラインでレイヤーを一つ増やし、
その増やしたレイヤーを選択。
その1フレーム目にテキストボックスを下の要領でつくってください。


<テキストボックスの設定>

1.ツールバーに文字を書くテキストツールがありますよね。
  ( A って書いてあります)
  それで100と書いてみてください。



2.その100をクリックすると、プロパティパネルの左の
  プルダウンメニューにに
  
   ”静止テキスト”

  と書いてあると思います。
  
  静止テキストはあらじかじめ入力されている文字を
  表示するためのものなので、ここでは”変数”として使えるように
  
  ”ダイナミックテキスト”

  に変更します。



3.すると真ん中右あたりに

  変数:

  というのが現れると思うのでそこに変数の名前をいれてやります。
  (現れない場合は、プロパティパネルの右下の角に▼あるのでそれをクリックしてみてください)

  ではこのテキストボックスに名前をつけてやるために、

  変数:の隣ボックスに num  と入力してください。

4.テキストボックスにはじめに入力した 100 は消して、
  右下に出てる □ を右に引っ張るとボックスが大きくなるので
  100が入っていたくらいの大きさに戻しておいてください。
  

  これでテキストボックスの設定はできました。

  この num という名前のテキストボックスに値をいれてやると、
  入れた値がボックスに表示されるわけです。


<テキストボックスに値を入れる>

4.これで見えてきましたか?
  あとは、前回つくった、

  伸びるバーが入ったムービークリップの中で
  読み込んだ数字をあらわしていた変数 percent を、
  テキストボックス num にいれてやればよいわけです。


  
  伸びるバーが入ったムービークリップに書いたコードは

  onClipEvent(enterFrame){
   bytesTotal = _root.getBytesTotal();
   bytesLoaded = _root.getBytesLoaded();
   parcent = bytesLoaded / bytesTotal * 100;
   this._width = parcent;
  }


  でしたよね。
 
  この中で数字の%表示を表している変数は

  parcent = bytesLoaded / bytesTotal * 100;

の parcent でしたね。

  なのでこれをさっき作った num と名前をつけた
  テキストボックスに代入してやります。

  ということで

  parcent = bytesLoaded / bytesTotal * 100;
  の下に
  num = parcent;

と書きたいところなんですが、これでは動きません。
  なぜかというと、これでは 変数num がどこにあるかわからないのです。

  構成は、
 
                     メインタイムライン(_root)
                              | 
             |-----------------------------------| 
    伸びるバーが入った                       今回つくった 
    ムービークリップ                     テキストボックス num
 


 となっているので、
  伸びるバーが入ったムービークリップから見ると、
  テキストボックスnum は 

 ◎メインタイムラインの中のテキストボックスnumです

  と的確に教えてやらないとどこにあるのかわからないんです。

   これは _root.num と書きます。

   というわけで、

  parcent = bytesLoaded / bytesTotal * 100;
  num = parcent;

  じゃなくて

  parcent = bytesLoaded / bytesTotal * 100;
  _root.num = parcent;


  さらにこのparcent は小数点がついているので、
  Math.floorで切り捨てて、

  _root.num = Math.floor(parcent);

これでばっちりです!

  最終的に、
  

  onClipEvent(enterFrame){

   bytesTotal = _root.getBytesTotal();
   bytesLoaded = _root.getBytesLoaded();
   parcent = bytesLoaded / bytesTotal * 100;

   _root.num = Math.floor(parcent);
   
      this._width = parcent;

  }


となります。

5.では 前回同様

   ムービープレビュー
   表示→ストリーミングを表示

  で見てみてください。

  バーが伸びつつ数字が増加していきます!


あとはLoading... とか、テキストボックスの横に%とか付け足すと、

 ■■■■
 loadng... 34%

みたいな格好になりますよ!

これで一応できたんですが、せっかく作ったので他のファイルにも使いまわしできるように、
ちょっと構成をかえてみましょう!





▲ローディング05 - _widthでバーを伸ばす に戻る


▼ローディング07 - ローディングアニメーションを使いまわす方法 に進む



---------------------------------------------------
↓今お気に入りの愛用デジカメです。


CASIO EXILIM ZOOM EX-Z55BN デジタルカメラ

ポイントは、充電できて、バッテリーがすごーーく長持ちするところ。
1ヶ月前に買って、写真やらムービーやらとりまくってるんですが、
まだ充電切れません。旅行に最適!きれいにとれますよ。


**************************************************
↓私の講座サイトです。興味のある人はぜひ見に来てください♪
フラッシュ講座