Loader クラス

Loader クラス(livedocs@lab)は、SWF ファイルを読み込んだり、JPEG, PNG, GIF 等のイメージデータを読み込むのに使います。Loader のメソッドは以下のとおりです。

public load(request:URLRequest) : Void    // 指定された URL からロード
public unload() : Void                     // 読み込んだオブジェクトの削除
public close() : Void                      // 実行中のロードをキャンセル
public loadBytes(bytes:ByteArray) : Void  // 引数からデータをロード

読み込まれたオブジェクトは Loader の子オブジェクトになります。Loader.content プロパティからこれを参照することが出来るようになっています。Loader は DisplayObjectContainer のサブクラスですが、子オブジェクトを一つしか持つことが出来ない特殊なクラスです。このため子オブジェクトを追加/削除する類のメソッドを呼び出すと例外が投げられます。

loadByte メソッドはちょっと面白いメソッドで、メモリ上のバイナリデータから SWF や GIF, JPEG, PNG のオブジェクトを作成することができます。

Loader のイベントとしては、ロードの状況や終了を知らせるイベントがサポートされています。

open           : 処理が開始された
progress       : ロード処理を実行中
complete       : ロードが完了した
init           : ロードした SWF が初期化された

securityError や unload といった新しいイベントも追加されました。

読み込み中のオブジェクトの情報は Loader.loadeeInfo プロパティからも得ることが出来ます。このために LoaderInfo というクラスが専用で提供されています。(livedocs@lab) Loader.loadeeInfo プロパティは読み込まれる側からも共有されていて、読み込まれた SWF からは DisplayObject.root.loaderInfo プロパティ経由でアクセスできます。このとき、読み込まれた SWF は、読み込む際に URL パラーメタが指定されていると loaderInfo.arguments プロパティから取得できるようになっています。

AS1/2 では、MoviClipLoader クラスや MovieClip.loadMovie メソッドが同じ目的に使用されていましたが、AS3 では Loader に置き換えられています。

少し話しは外れますが、AS3 からは LoadVars も Loader のサブクラスの URLLoader (livedocs@lab)で置き換えられました。併せて AS2 の XML は通信機能が省略された上で XMLDocument (livedocs@lab)というクラスに変更されています。(AS3 の XML は新しいクラスです。これについては別途詳しく解説する予定です。)

コメント(3)

動的に生成されたGIF, JPEG, PNGなどの画像データをユーザが保存できるようにするにはどのようにしたら良いでしょうか。

FileReference.download()を利用する場合は引数に
URLRequestオブジェクトがあるため、メモリ上にせっかくあるバイナリデータをウェブ上のサーバに送信する必要ということでしょうか…

動的に生成された画像をユーザーが閲覧可能であるだけでなく、ダウンロードできるようにする方法はあるのでしょうか…
バイナリデータをサーバに転送することなく可能な手法はあるのでしょうか。

ご教授いだたければ幸いです。
アドバイスのほど、よろしくお願いいたします。

j さん、こんにちは。
Flash Player には File I/O の API が無いので、ローカルディスクにデータを書き出すことができません。
一般的な Web サイト内での使用だと思いますので、サーバを経由しないのだと、あとは JavaScript と連携するくらいでしょうか。

ackieさん、アドバイスありがとうございます。
了解しました。

一度画像情報をサーバへ送り、そのURLをFileReferenceで
指定してデータをダウンロードすることを考えて見ます。

>サーバを経由しないのだと、あとは JavaScript と連携するくらいでしょうか。

興味深いのですが私には難しいです。
JavaScriptとActionScript間の通信・連携手法はウェブで調べてみましたが・・・

コメントする

2014年1月

Sun Mon Tue Wed Thu Fri Sat
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
レンタルサーバー

月別 アーカイブ

Powered by Movable Type 4.261