2日ほど、業務に押され何も記事かけませんでした、小堤です。
さて、一応ローディングが作れるぞ!という部分までフレームワーク(xFrameworkFX)を作成しました。ので、約束通り公開いたします。
で、ただ公開するだけでは何なので、一応ローディングを作成するための説明を。
というか、後でまとめるための草稿なんですけどね。
サンプルのSWFは2フレーム目に画像いれてあるのですが、ローカルだと一瞬で100%になると思うので、FLAで再生する際にCTRL+ENTERもう一回押してあげてダウンロードのシミュレートをオンにして実行してください。確認できます。
先に前提条件として、classesのnetディレクトリ以降が クラスパスとして通してある前提です。(当たり前か)
サンプルが内包されていると思います。
FXDemo\ui\loading\Loading.as がローディングムービークリップオブジェクトのクラスになります。
このクラスはnet.xFramework.ui.loading.UILoading を継承しています。ローディングを作成する際は、このクラスを継承してください。
その他必要なimportは下記の通りです。
- import flash.display.MovieClip;
- import net.xFramework.ui.loading.UILoading;
- import flash.events.Event;
- import flash.events.ProgressEvent;
- import flash.text.TextField;
このクラスは
- onInit(初期化)
- onProgress(読み込み中)
- onComplate(読み込み完了)
というメソッドが実装されており、かつ自動的にコールされるようになっています。ですので、自身で継承して利用する場合はオーバーライドしてメソッドを作成してください。ちなみに親クラスのメソッドでは、何の処理もしていないためsuperをわざわざ自身のメソッド内に記述する必要はありません。
あとは、FLA内で、リンケージ設定で
- クラス名:FXDemo.ui.loading.Loading
- 基本クラス:flash.display.MovieClip
として、完了です。
これでローディングMC自体の設定は終わりです。
親クラスのプロパティとして
- nBytesTotal
- nBytesLoaded
- nPercent
が設定されていて、かつ自動的に更新されます。ですので、onProgressなどのイベントハンドラで各値を使って、自身のローディングアニメーションに反映してください。
最後に、この設定をして終わりです。
FXDemo.display.MainDocumentクラスをみてください。 こいつは、net.xFramework.display.Documentを継承しています。
必要なインポートは下記の通りです。
- import net.xFramework.display.Document;
- import net.xFramework.events.ControllerEvent;
- import FXDemo.ui.loading.Loading;
このクラスFLAで、ドキュメントクラスとして設定してください。
このクラスのコンストラクタで、先ほどのローディングクラスをthis.mcLoadingに対してインスタンス化します。
これで、ローディングの骨組みができました。終わりです。
あとは、ローディングクラスのイベントハンドラで自身のアニメーションを制御してください。
長くなりましたが、これ以外にXMLよるローディングの表示位置が設定できます、また、xFramewrokFX内の各クラスについての説明も追々やっていこうと思っています。
たいしたものではないので、あれなんですが・・・感想くれるとうれしいです(笑)