2009年3月6日

flash actionscript 3.0 外部ファイルのロード

アクションスクリプトを使って行う作業で、一番多く使うのが、外部ファイルのロードだと思う。これは、本当にしっかり理解する必要があるが、解説が少ない気がするので書いておく。

--------クラス:Loader


これは、その名の通りロードするためのクラス。何をロードするかといえばURLで指定したSWF, JPEG, PNG, GIF等だ。
URLLoaderクラスというのもあって、こちらは変数、テキスト、GET/POST受信とかに使われる。

読み込んだコンテンツを入れる箱なので、myLoader.contentでコンテンツにアクセスします。
読み込みが完了した後(イベントに関しては下を参照)に、
myLoader.content.width *= 30/100;
等として読み込んだコンテンツ(写真等)を、実際の物の30%に縮小したりする事ができます。

--------クラス:URL Request


URLの指定は、AS3.0では、URLRequestオブジェクトを介して行う。URLRequest("文字列")といった具合だ。

Loader、URLLoaderともに、

myLoader:Loader = new Loader(new URLRequest("image1.jpg");

という形で、生成する。

--------クラス:LoaderInfo


慣れれば簡単だけど、つかみにくいのがこれだと思う。LoaderInfoオブジェクトとLoaderの関係。
LoaderInfoは、パラメータで、Loaderクラスが持っているオブジェクトです。

myLoader.contentLoaderInfoというプロパティに実はすべて格納されていて、イメージ読み込み程度ならわざわざ作る必要がなかったりもします。(生成する必要がある例は研究中/募集中)


--------イベント処理入門


LoaderInfoはパラメータと言いましたが、それに対応したイベントがあります。
myLoader.addEventListener(イベント, イベント処理関数) を使って、他のオブジェクト等を操る事ができます。
function myEvent(e:EventType):void {}の様に、定義します。
イベントによってe:EventTypeのEventTypeが変わるので注意が必要です。

Event.OPEN


ロードが開始された時に送出

ProgressEvent.PROGRESS


進行状況の把握に使う

イベント処理関数内で、
e.bytesLoaded 既に読み込まれたバイト
e.bytesTotal  読み込む総バイト数
でそれぞれ取得する事ができます。

Event.COMPLETE


ロード完了時に送出

他にも、

Event.INIT (アクセス可能になった)、
IOErrorEvent.IO_Error(エラー情報)

等があります。(ドキュメント参照してください)



--------注意点


他のドメインからの読み込みは原則的にできません。AS3.0 でのセキュリティー設定と、参照元サーバにアクセス許可ファイルを設置する必要があるようです。

0 件のコメント:

コメントを投稿