「Masapi」とは、Flex/Flash/AIRで大量ファイルをロードする用のオープンソースのAS3フレームワークです。URLLoaderやLoaderというクラスと同じインタフェースを持っています。
※URLLoader クラスは、指定した URL からテキスト、バイナリデータ、または URL エンコード形式の変数をダウンロードする際に使用します。動的なデータ駆動アプリケーションで使用するテキストファイル、XML、その他の情報をダウンロードする場合に便利です。
URLLoader オブジェクトは、データを ActionScript で使用できるようにする前に、それらのすべてのデータを URL からダウンロードします。URLLoader オブジェクトは、ダウンロードの進捗に関する通知を送信します。これらは、送出済みのイベント、さらには
bytesLoadedおよびbytesTotalプロパティで監視できます。
「Masapi」は以下の特徴を持っています。
・Same interface for all load managers (URLLoader, Loader, …)
・Easy massive loading classes
・Advanced massive loading (priority, dependencies)
・Advanced massive loading management (loading policy, loading information, …)
[使用方法]
1)、次のURLから最新版をダウンロードします。
http://code.google.com/p/masapi/downloads/list
2)、プロジェクトに追加する
プロジェクトに追加するため、クラスパスに「ch」というフォルダが必要です。「chフォルダをFLAと同じフォルダに置く」と「srcフォルダをクラスパスに追加する(File > Publish settings > Flash > ActionScript 3 settings)」ってのいずれかもできます。
クラスパスに追加した上で、以下の様のソースで使えるかどうか確認します。
- import ch.capi.net.*;
- import ch.capi.events.*;
- var ml:MassLoader = new MassLoader();
- ml.addEventListener(MassLoadEvent.FILE_OPEN, onFileOpen);
- function onFileOpen(evt:MassLoadEvent):void { trace(”open”); }
正常で動作するとMasapiのインストールは完了します。
以下は「CompositeMassLoader」というクラスを利用してリスト中の何個ファイルをロードする例です。
- import ch.capi.net.*;
- //creates the MassLoader
- var cml:CompositeMassLoader = new CompositeMassLoader();
- //creates & add the files to the MassLoader
- cml.addFile(”myFile.txt”); // will use a URLLoader object with the URLLoaderDataFormat.VARIABLES property
- cml.addFile(”myFile.xml”); // will use a URLLoader object with the URLLoaderDataFormat.TEXT property
- cml.addFile(”myFile.css”); // will use a URLLoader object with the URLLoaderDataFormat.TEXT property
- cml.addFile(”myFile.png”); // will use a URLLoader object with the URLLoaderDataFormat.BINARY property
- cml.addFile(”myFile.png”, LoadableFileType.SWF); // will use a Loader object
- cml.addFile(”myFile.jpg”); // will use a URLLoader object with the URLLoaderDataFormat.BINARY property
- cml.addFile(”myFile.swf”); // will use a Loader object
- cml.addFile(”myFile.swf”, LoadableFileType.BINARY); // will use a URLLoader object with the URLLoaderDataFormat.BINARY property
- //starts the loading
- cml.start();
- //useful information for debugging
- //trace(cml.massLoader);
次は「Masapi」のローディングイベントを監視する例:
- import ch.capi.net.*;
- import ch.capi.events.*;
- //creates the MassLoader
- var cml:CompositeMassLoader = new CompositeMassLoader();
- cml.massLoader.addEventListener(ProgressEvent.PROGRESS, onOverallProgress); //overall progression
- cml.massLoader.addEventListener(MassLoadEvent.FILE_OPEN, onOpenHandler); //a file download starts
- cml.massLoader.addEventListener(Event.COMPLETE, completeHandler); //massload complete
- //… (creates the files and so on)
- //listen to the overall progression
- function onOverallProgress(evt:ProgressEvent):void
- {
- var percent:Number = Math.round(evt.bytesLoaded / evt.bytesTotal * 100);
- trace(”Loaded at “+percent+”%”);
- }
- //listen when a file begins to be loaded
- function onOpenHandler(evt:MassLoadEvent):void
- {
- var file:ILoadableFile = evt.file as ILoadableFile;
- file.addEventListener(ProgressEvent.PROGRESS, onFileProgress);
- }
- //listen to a specific file
- function onFileProgress(evt:ProgressEvent):void
- {
- trace(”file progress”);
- }
- //listen to the complete event
- function completeHandler(evt:Event):void
- {
- trace(”MassLoad complete”);
- }
- //starts the loading
- cml.start();
大量のファイルがあるので、ローディングのステータスの取得が必要となります。以下はステータスを取得する例:
- import ch.capi.net.*;
- import ch.capi.events.*;
- //creates the MassLoader
- var cml:CompositeMassLoader = new CompositeMassLoader();
- cml.massLoader.addEventListener(ProgressEvent.PROGRESS, onProgress);
- //…
- function onProgress(evt:ProgressEvent):void
- {
- var info:ILoadInfo = evt.target.loadInfo;
- //var info:ILoadInfo = cml.loadInfo;
- trace(info.currentSpeed);
- trace(info.averageSpeed);
- trace(info.elapsedTime);
- trace(info.remainingTime);
- trace(info.percentLoaded);
- trace(info.ratioLoaded);
- trace(info.bytesLoaded+” / “+info.bytesTotal);
- }
[関連リンク]
・http://code.google.com/p/masapi/ 公式サイト
Posted on Saturday, 16th May 2009 by admin
Tags: ActionScript, Masapi, URLLoader
Posted in AIR, ActionScript, Flash Project | Comments (0) | 1,942 views
