パッケージ | flash.display |
クラス | public class Loader |
継承 | Loader DisplayObjectContainer InteractiveObject DisplayObject EventDispatcher Object |
サブクラス | AVLoader, FlexLoader |
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
load()
メソッドを使用します。読み込まれた表示オブジェクトは Loader オブジェクトの子として追加されます。
テキストまたはバイナリデータを読み込むには URLLoader クラスを使用します。
Loader クラスは、継承する次のメソッドをオーバーライドします。これは、Loader オブジェクトが持つことができるのは 1 つの子表示オブジェクト、つまりロードするオブジェクトに限られているためです。次のメソッドを呼び出すと例外がスローされます。メソッドは、addChild()
、addChildAt()
、removeChild()
、removeChildAt()
、および setChildIndex()
です。ロードされた表示オブジェクトを削除するには、親の DisplayObjectContainer 子配列から Loader オブジェクトを削除する必要があります。
iOS の場合の注意点
iOS での AIR アプリケーションでは、アプリケーションパッケージからロードする場合のみ、ActionScript を含む SWF ファイルをロードできます。この制約では、ActionScript 向けに書き出されたクラス名を含むアセットなどの、あらゆる ActionScript が対象となります。あらゆる SWF ファイルをロードするためには、以下の例のように、親 SWF と同じアプリケーションドメインを使用して SWF をロードする必要があります。
var loader:Loader = new Loader(); var url:URLRequest = new URLRequest("swfs/SecondarySwf.swf"); var loaderContext:LoaderContext = new LoaderContext(false, ApplicationDomain.currentDomain, null); loader.load(url, loaderContext);
また、iOS では、ActionScript バイトコード(ABC)を含む SWF ファイルをロードしてからアンロードし、再度ロードすることはできません。これを行おうとすると、ランタイムでエラー 3764 が発生します。
AIR 3.6 より前のバージョンでは、アプリケーションパッケージからロードする場合でも、ネットワーク経由でロードする場合でも、ロードできるのは ActionScript バイトコードを含まない SWF ファイルのみです。ActionScript を含む外部 SWF ファイルを使用する代わりに、SWC ライブラリを作成し、そのライブラリをメイン SWF にリンクしてください。
AIR 3.7 以上では、外部でホストされた 2 番目の SWF のロードがサポートされます。この機能に関する詳細な説明は、こちらを参照してください。
これらの iOS の制約は、アプリケーションを iOS シミュレーター(ipa-test-interpreter-simulator もしくは ipa-debug-interpreter-simulator)またはインタープリターモード(ipa-test-interpreter もしくは ipa-debug-interpreter)で実行する場合には適用されません。
Loader のセキュリティ
Loader クラスを使用するときは、Flash Player および Adobe AIR のセキュリティモデルを考慮してください。
- コンテンツは、アクセスできるソースであればどのソースからでもロードできます。
- 呼び出し元 SWF ファイルがネットワーク上のサンドボックスにあり、読み込むファイルがローカルにある場合は読み込めません。
- 読み込まれたコンテンツが ActionScript 3.0 で作成された SWF ファイルの場合、別のセキュリティ Sandbox にある SWF ファイルでそれをクロススクリプトすることはできません。ただし、読み込まれたコンテンツファイルで、
System.allowDomain()
またはSystem.allowInsecureDomain()
メソッドの呼び出しによってクロススクリプトに関する取り決めが承認されていた場合は可能です。 - 読み込まれたコンテンツが AVM1 SWF ファイル(ActionScript 1.0 または 2.0 で作成されたもの)の場合、AVM2 SWF ファイル(ActionScript 3.0 で作成されたもの)でそれをクロススクリプトすることはできません。ただし、LocalConnection クラスを使用して、2 つの SWF ファイル間で通信を行うことはできます。
- ロードされたコンテンツがイメージの場合、セキュリティサンドボックスの外にある SWF ファイルからそのデータにアクセスすることはできません。ただし、その SWF ファイルのドメインがイメージの元のドメインにある URL ポリシーファイルに含まれていた場合は可能です。
- ローカルファイルシステムのサンドボックスにあるムービークリップでは、ネットワーク接続したローカルのサンドボックスにあるムービークリップをスクリプト処理できません。その逆も同様です。
- 一般的な予約ポートには接続できません。遮断されたポートの詳しいリストについては、『ActionScript 3.0 開発ガイド』の「ネットワーク API の制限」を参照してください。
ただし、 AIR では、アプリケーション
セキュリティサンドボックス内のコンテンツ(AIR アプリケーションと共にインストールされたコンテンツ)は、これらのセキュリティ制限による制限を受けません。
セキュリティについて詳しくは、Flash Player デベロッパーセンターのトピック:セキュリティを参照してください。
信頼されていないソース(Loader オブジェクトのルート SWF ファイルのドメイン以外のドメインなど)から SWF ファイルを読み込む場合は、次のコードに示すように、Loader オブジェクトに対してマスクを定義して、読み込まれたコンテンツ(Loader オブジェクトの子)がそのマスクの外部にあるステージの一部分に描画されないようにすることができます。
import flash.display.*; import flash.net.URLRequest; var rect:Shape = new Shape(); rect.graphics.beginFill(0xFFFFFF); rect.graphics.drawRect(0, 0, 100, 100); rect.graphics.endFill(); addChild(rect); var ldr:Loader = new Loader(); ldr.mask = rect; var url:String = "http://www.unknown.example.com/content.swf"; var urlReq:URLRequest = new URLRequest(url); ldr.load(urlReq); addChild(ldr);
注意:Apple は iOS9 で App Transport Security を導入しています。これにより、アプリと Web サービス間の保護されていない接続は使用できません。この変更により、Loader および URLLoader を使用した保護されていない Web サイトへのすべての接続は切断され、使用できなくなります。アプリで Info.plist にキーを追加して、このデフォルトの動作の例外を指定してください。
この機能を完全にオフにするには、Info.plist に以下を追加します。これで以前と同様に使用できるようになります。
<key>NSAppTransportSecurity</key> <dict> <key>NSAllowsArbitraryLoads</key><true/> </dict>
アプリのアプリケーション記述子の InfoAdditions タグにキーを追加し、デフォルトの動作の例外を指定してください。
<iPhone> <InfoAdditions> <![CDATA[ <key>NSAppTransportSecurity</key> <dict> <key>NSExceptionDomains</key> <dict> <key>www.example.com</key> <dict> <!--Include to allow subdomains--> <key>NSIncludesSubdomains</key> <true/> <!--Include to allow HTTP requests--> <key>NSTemporaryExceptionAllowsInsecureHTTPLoads</key> <true/> <!--Include to specify minimum TLS version--> <key>NSTemporaryExceptionMinimumTLSVersion</key> <string>TLSv1.1</string> </dict> </dict> </dict> ]]> </InfoAdditions> </iPhone>
関連する API エレメント
プロパティ | 定義元 | ||
---|---|---|---|
accessibilityImplementation : AccessibilityImplementation
この InteractiveObject インスタンスの現在のアクセシビリティの実装(AccessibilityImplementation)です。 | InteractiveObject | ||
accessibilityProperties : AccessibilityProperties
この表示オブジェクトの現在のアクセシビリティオプションです。 | DisplayObject | ||
alpha : Number
指定されたオブジェクトのアルファ透明度値を示します。 | DisplayObject | ||
blendMode : String
使用するブレンドモードを指定する BlendMode クラスの値です。 | DisplayObject | ||
blendShader : Shader [書き込み専用]
前景と背景のブレンドに使用するシェーダーを設定します。 | DisplayObject | ||
cacheAsBitmap : Boolean
true に設定されている場合、表示オブジェクトの内部ビットマップ表現が Flash ランタイムにキャッシュされます。 | DisplayObject | ||
cacheAsBitmapMatrix : Matrix
null 以外の場合、この Matrix オブジェクトは、cacheAsBitmap を true に設定したときの表示オブジェクトのレンダリング方法を定義します。 | DisplayObject | ||
constructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクター関数への参照です。 | Object | ||
content : DisplayObject [読み取り専用]
load() または loadBytes() メソッドを使用して読み込まれた SWF ファイルまたはイメージ(JPG、PNG、または GIF)ファイルのルート表示オブジェクトが含まれます。 | Loader | ||
contentLoaderInfo : LoaderInfo [読み取り専用]
読み込まれているオブジェクトに対応する LoaderInfo オブジェクトを返します。 | Loader | ||
contextMenu : NativeMenu
このオブジェクトに関連付けられたコンテキストメニューを指定します。 | InteractiveObject | ||
doubleClickEnabled : Boolean
オブジェクトが doubleClick イベントを受け取るかどうかを指定します。 | InteractiveObject | ||
filters : Array
表示オブジェクトに現在関連付けられている各フィルターオブジェクトが格納されているインデックス付きの配列です。 | DisplayObject | ||
focusRect : Object
このオブジェクトがフォーカス矩形を表示するかどうかを指定します。 | InteractiveObject | ||
height : Number
表示オブジェクトの高さを示します(ピクセル単位)。 | DisplayObject | ||
loaderInfo : LoaderInfo [読み取り専用]
この表示オブジェクトが属するファイルの読み込み情報を含む LoaderInfo オブジェクトを返します。 | DisplayObject | ||
mask : DisplayObject
呼び出し元の表示オブジェクトは、指定された mask オブジェクトによってマスクされます。 | DisplayObject | ||
metaData : Object
メタデータが PlaceObject4 タグによってこの DisplayObject のインスタンスと一緒に SWF ファイル内に保存されている場合に、DisplayObject インスタンスのメタデータオブジェクトを取得します。 | DisplayObject | ||
mouseChildren : Boolean
オブジェクトの子がマウスまたはユーザー入力デバイスに対応しているかどうかを判断します。 | DisplayObjectContainer | ||
mouseEnabled : Boolean
このオブジェクトでマウスまたはその他のユーザー入力メッセージを受け取るかどうかを指定します。 | InteractiveObject | ||
mouseX : Number [読み取り専用]
マウスまたはユーザー入力デバイスの x 軸の位置をピクセルで示します。 | DisplayObject | ||
mouseY : Number [読み取り専用]
マウスまたはユーザー入力デバイスの y 軸の位置をピクセルで示します。 | DisplayObject | ||
name : String
DisplayObject のインスタンス名を示します。 | DisplayObject | ||
needsSoftKeyboard : Boolean
この InteractiveObject インスタンスがフォーカスを受け取ったときに、仮想キーボード(画面上のソフトキーボード)を表示するかどうかを指定します。 | InteractiveObject | ||
numChildren : int [読み取り専用]
このオブジェクトの子の数を返します。 | DisplayObjectContainer | ||
opaqueBackground : Object
表示オブジェクトが特定の背景色で不透明であるかどうかを指定します。 | DisplayObject | ||
parent : DisplayObjectContainer [読み取り専用]
この表示オブジェクトを含む DisplayObjectContainer オブジェクトを示します。 | DisplayObject | ||
root : DisplayObject [読み取り専用]
読み込まれた SWF ファイル内の表示オブジェクトの場合、root プロパティはその SWF ファイルが表す表示リストのツリー構造部分の一番上にある表示オブジェクトとなります。 | DisplayObject | ||
rotation : Number
DisplayObject インスタンスの元の位置からの回転角を度単位で示します。 | DisplayObject | ||
rotationX : Number
DisplayObject インスタンスの 3D 親コンテナを基準にした元の位置からの x 軸の回転角を度単位で示します。 | DisplayObject | ||
rotationY : Number
DisplayObject インスタンスの 3D 親コンテナを基準にした元の位置からの y 軸の回転角を度単位で示します。 | DisplayObject | ||
rotationZ : Number
DisplayObject インスタンスの 3D 親コンテナを基準にした元の位置からの z 軸の回転角を度単位で示します。 | DisplayObject | ||
scale9Grid : Rectangle
現在有効な拡大 / 縮小グリッドです。 | DisplayObject | ||
scaleX : Number
基準点から適用されるオブジェクトの水平スケール(パーセンテージ)を示します。 | DisplayObject | ||
scaleY : Number
オブジェクトの基準点から適用されるオブジェクトの垂直スケール(パーセンテージ)を示します。 | DisplayObject | ||
scaleZ : Number
オブジェクトの基準点から適用されるオブジェクトの奥行きスケール(パーセンテージ)を示します。 | DisplayObject | ||
scrollRect : Rectangle
表示オブジェクトのスクロール矩形の境界です。 | DisplayObject | ||
softKeyboard : String
ソフトキーボードの外観を制御します。 | InteractiveObject | ||
softKeyboardInputAreaOfInterest : Rectangle
ソフトキーボードが表示されたときに画面に表示したままにする領域を定義します(iOS では使用不可)。 | InteractiveObject | ||
stage : Stage [読み取り専用]
表示オブジェクトのステージです。 | DisplayObject | ||
tabChildren : Boolean
オブジェクトの子に対してタブが有効かどうかを調べます。 | DisplayObjectContainer | ||
tabEnabled : Boolean
このオブジェクトがタブ順序に含まれるかどうかを指定します。 | InteractiveObject | ||
tabIndex : int
SWF ファイル内のオブジェクトのタブ順序を指定します。 | InteractiveObject | ||
textSnapshot : flash.text:TextSnapshot [読み取り専用]
この DisplayObjectContainer インスタンスの TextSnapshot オブジェクトを返します。 | DisplayObjectContainer | ||
transform : flash.geom:Transform
表示オブジェクトのマトリックス、カラー変換、ピクセル境界に関係するプロパティを持つオブジェクトです。 | DisplayObject | ||
uncaughtErrorEvents : UncaughtErrorEvents [読み取り専用]
この Loader オブジェクトが読み込んだ SWF で不明なエラーが発生したときに、uncaughtError イベントを送出するオブジェクトです。 | Loader | ||
visible : Boolean
表示オブジェクトが可視かどうかを示します。 | DisplayObject | ||
width : Number
表示オブジェクトの幅を示します(ピクセル単位)。 | DisplayObject | ||
x : Number
親 DisplayObjectContainer のローカル座標を基準にした DisplayObject インスタンスの x 座標を示します。 | DisplayObject | ||
y : Number
親 DisplayObjectContainer のローカル座標を基準にした DisplayObject インスタンスの y 座標を示します。 | DisplayObject | ||
z : Number
3D 親コンテナを基準にした、DisplayObject インスタンスの z 軸に沿った z 座標位置を示します。 | DisplayObject |
メソッド | 定義元 | ||
---|---|---|---|
Loader()
SWF、JPEG、GIF、または PNG などのファイルの読み込みに使用できる Loader オブジェクトを作成します。 | Loader | ||
この DisplayObjectContainer インスタンスに子 DisplayObject インスタンスを追加します。 | DisplayObjectContainer | ||
この DisplayObjectContainer インスタンスに子 DisplayObject インスタンスを追加します。 | DisplayObjectContainer | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録し、リスナーがイベントの通知を受け取るようにします。 | EventDispatcher | ||
特定の point ポイントを指定して呼び出した DisplayObjectContainer.getObjectsUnderPoint() メソッドから返されたリストに、セキュリティ上の制約のために省略される表示オブジェクトがあるかどうかを示します。 | DisplayObjectContainer | ||
Loader インスタンスに対して現在進行中の load() メソッドの処理をキャンセルします。 | Loader | ||
指定された表示オブジェクトが、DisplayObjectContainer インスタンスの子であるか、インスタンス自体であるかを指定します。 | DisplayObjectContainer | ||
イベントをイベントフローに送出します。 | EventDispatcher | ||
targetCoordinateSpace オブジェクトの座標系を基準にして、表示オブジェクトの領域を定義する矩形を返します。 | DisplayObject | ||
指定のインデックス位置にある子表示オブジェクトインスタンスを返します。 | DisplayObjectContainer | ||
指定された名前に一致する子表示オブジェクトを返します。 | DisplayObjectContainer | ||
子 DisplayObject インスタンスのインデックス位置を返します。 | DisplayObjectContainer | ||
指定されたポイントの下にあり、この DisplayObjectContainer インスタンスの子(または孫など)であるオブジェクトの配列を返します。 | DisplayObjectContainer | ||
シェイプ上の線を除き、targetCoordinateSpace パラメーターによって定義された座標系に基づいて、表示オブジェクトの境界を定義する矩形を返します。 | DisplayObject | ||
point オブジェクトをステージ(グローバル)座標から表示オブジェクトの(ローカル)座標に変換します。 | DisplayObject | ||
ステージ(グローバル)座標の 2 次元のポイントを 3 次元の表示オブジェクトの(ローカル)座標に変換します。 | DisplayObject | ||
EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。 | EventDispatcher | ||
オブジェクトに指定されたプロパティが定義されているかどうかを示します。 | Object | ||
表示オブジェクトの境界ボックスを評価して、obj 表示オブジェクトの境界ボックスと重複または交差するかどうかを調べます。 | DisplayObject | ||
表示オブジェクトを評価して、x および y パラメーターで指定されたポイントと重複または交差するかどうかを調べます。 | DisplayObject | ||
Object クラスのインスタンスが、パラメーターとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。 | Object | ||
SWF、JPEG、プログレッシブ JPEG、非アニメーション GIF、または PNG ファイルを、この Loader オブジェクトの子であるオブジェクトにロードします。 | Loader | ||
ByteArray オブジェクトに保管されているバイナリデータからロードします。 | Loader | ||
IFilePromise インスタンスを読み込みます。 | Loader | ||
3 次元の表示オブジェクトの(ローカル)座標の 3 次元のポイントをステージ(グローバル)座標の 2 次元のポイントに変換します。 | DisplayObject | ||
point オブジェクトを表示オブジェクトの(ローカル)座標からステージ(グローバル)座標に変換します。 | DisplayObject | ||
指定されたプロパティが存在し、列挙できるかどうかを示します。 | Object | ||
DisplayObjectContainer インスタンスの子リストから指定の child DisplayObject インスタンスを削除します。 | DisplayObjectContainer | ||
DisplayObjectContainer の子リストの指定された index 位置から子 DisplayObject を削除します。 | DisplayObjectContainer | ||
DisplayObjectContainer インスタンスの子リストから、すべての child DisplayObject インスタンスを削除します。 | DisplayObjectContainer | ||
EventDispatcher オブジェクトからリスナーを削除します。 | EventDispatcher | ||
仮想キーボードを前面に表示します。 | InteractiveObject | ||
表示オブジェクトコンテナの既存の子の位置を変更します。 | DisplayObjectContainer | ||
ループ処理に対するダイナミックプロパティの可用性を設定します。 | Object | ||
このオブジェクトでルート指定されているすべての MovieClip のタイムラインでの実行を再帰的に停止します。 | DisplayObjectContainer | ||
指定された 2 つの子オブジェクトの z 順序(重ね順)を入れ替えます。 | DisplayObjectContainer | ||
子リスト内の指定されたインデックス位置に該当する 2 つの子オブジェクトの z 順序(重ね順)を入れ替えます。 | DisplayObjectContainer | ||
ロケール固有の規則に従って書式設定された、このオブジェクトのストリング表現を返します。 | Object | ||
指定されたオブジェクトのストリング表現を返します。 | Object | ||
load() メソッドを使用して読み込まれた、この Loader オブジェクトの子を削除します。 | Loader | ||
子 SWF ファイルの内容のアンロードを試み、ロードされた SWF ファイルのコマンドの実行を中止します。 | Loader | ||
指定されたオブジェクトのプリミティブな値を返します。 | Object | ||
指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。 | EventDispatcher |
content | プロパティ |
content:DisplayObject
[読み取り専用] 言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
load()
メソッドまたは loadBytes()
メソッドを使用して読み込まれた SWF ファイルまたはイメージ(JPG、PNG、または GIF)ファイルのルート表示オブジェクトが含まれます。
実装
public function get content():DisplayObject
例外
SecurityError — 読み込まれた SWF ファイルまたはイメージファイルは、アクセス権限が与えられていないセキュリティ Sandbox に属しています。読み込まれた SWF ファイルの場合、ファイルで Security.allowDomain() メソッドを呼び出すことによって、この状況を回避できます。または、loaderContext パラメーター(securityDomain プロパティのパラメーター)を SecurityDomain.currentDomain に設定することによって(ただし、読み込む側のファイルで load() または loadBytes() メソッドを呼び出すとき)、この状況を回避できます。
|
関連する API エレメント
contentLoaderInfo | プロパティ |
contentLoaderInfo:LoaderInfo
[読み取り専用] 言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
読み込まれているオブジェクトに対応する LoaderInfo オブジェクトを返します。LoaderInfo オブジェクトは、Loader オブジェクトと読み込まれたコンテンツオブジェクト間で共有されます。LoaderInfo オブジェクトは、読み込みの進行状況に関する情報と、読み込まれたファイルに関する統計を提供します。
読み込みに関連するイベントは、Loader オブジェクトの contentLoaderInfo
プロパティで参照される LoaderInfo オブジェクトによって送出されます。contentLoaderInfo
プロパティは、コンテンツの読み込みの前も、有効な valid LoaderInfo オブジェクトに設定されているので、読み込みの前にイベントリスナーをオブジェクトに追加できます。
読み込まれた SWF で発生する不明なエラーを検出するには、Loader.contentLoaderInfo.uncaughtErrorEvents
プロパティではなく、Loader.uncaughtErrorEvents
プロパティを使用します。
実装
public function get contentLoaderInfo():LoaderInfo
関連する API エレメント
例 ( この例の使用方法 )
var url:String = "http://www.helpexamples.com/flash/images/image2.jpg"; var urlRequest:URLRequest = new URLRequest(url); var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loader_complete); loader.load(urlRequest); addChild(loader); function loader_complete(evt:Event):void { var target_mc:Loader = evt.currentTarget.loader as Loader; target_mc.x = (stage.stageWidth - target_mc.width) / 2; target_mc.y = (stage.stageHeight - target_mc.height) / 2; }
uncaughtErrorEvents | プロパティ |
uncaughtErrorEvents:UncaughtErrorEvents
[読み取り専用] 言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10.1, AIR 2 |
この Loader オブジェクトが読み込んだ SWF で不明なエラーが発生したときに、uncaughtError
イベントを送出するオブジェクトです。不明なエラーが発生するのは、いずれかの try..catch
ブロックの外側でエラーがスローされたり、登録されたリスナーを持たない ErrorEvent オブジェクトが送出される場合です。
Loader オブジェクトの uncaughtErrorEvents
プロパティから送出されるイベントは、プロパティから直接送出されるものではなく、プロパティでバブルされたイベントです。ターゲット段階で uncaughtErrorEvent
を送出することはありません。キャプチャおよびバブリング段階以外では、イベントは送出されません。現在の SWF(Loader オブジェクトが定義されている SWF)内の不明なエラーを検出するには、代わりに LoaderInfo.uncaughtErrorEvents
プロパティを使用します。
Loader オブジェクトによって読み込まれたコンテンツが AVM1(ActionScript 2)SWF ファイルである場合、AVM1 SWF ファイル内のキャッチされなかったエラーで uncaughtError
イベントが発生することはありません。
実装
public function get uncaughtErrorEvents():UncaughtErrorEvents
関連する API エレメント
例 ( この例の使用方法 )
uncaughtError
イベントハンドラーを定義します。
コンストラクターで、コードは Loader オブジェクトを作成し、オブジェクトの uncaughtErrorEvents
プロパティが送出した uncaughtError
イベントのリスナーを登録します。
uncaughtErrorHandler()
メソッドで、コードは error
プロパティのデータ型をチェックし、その型に応じた応答を返します。
package { import flash.display.Loader; import flash.display.Sprite; import flash.events.ErrorEvent; import flash.events.UncaughtErrorEvent; import flash.net.URLRequest; public class LoaderUncaughtErrorEventExample extends Sprite { private var ldr:Loader; public function LoaderUncaughtErrorEventExample() { ldr = new Loader(); ldr.load(new URLRequest("child.swf")); ldr.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, uncaughtErrorHandler); } private function uncaughtErrorHandler(event:UncaughtErrorEvent):void { if (event.error is Error) { var error:Error = event.error as Error; // do something with the error } else if (event.error is ErrorEvent) { var errorEvent:ErrorEvent = event.error as ErrorEvent; // do something with the error } else { // a non-Error, non-ErrorEvent type was thrown and uncaught } } } }
Loader | () | コンストラクター |
public function Loader()
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
SWF、JPEG、GIF、または PNG などのファイルの読み込みに使用できる Loader オブジェクトを作成します。アセットを Loader インスタンスの子として読み込むには、load()
メソッドを呼び出します。その後、Loader オブジェクトを表示リストに追加できます。例えば、DisplayObjectContainer インスタンスの addChild()
メソッドを使用して追加します。アセットは読み込まれるとステージに表示されます。
Loader インスタンスを "リスト外" で、つまり、表示リスト上の表示オブジェクトコンテナに追加しなくても使用できます。このモードの場合、Loader インスタンスを使用して、アプリケーションの追加モジュールを含む SWF ファイルを読み込むことができます。
SWF ファイルの読み込みが完了したことを検出するには、Loader オブジェクトの contentLoaderInfo
プロパティに関連付けられた LoaderInfo オブジェクトのイベントを使用できます。その時点で、モジュール SWF ファイル内のコードを実行し、モジュールを初期化して、開始できます。リスト外モードでは、Loader インスタンスを使用して、コンポーネントまたはメディアアセットを含む SWF ファイルをロードすることもできます。この場合も、LoaderInfo オブジェクトのイベント通知を使用して、コンポーネントのロードが完了したことを検出できます。 その時点で、アプリケーションは SWF ファイルのライブラリ内のコンポーネントとメディアアセットの使用を開始できます。これは、それらのコンポーネントとアセットを表す ActionScript 3.0 クラスをインスタンス化することによって行います。
Loader オブジェクトの状態を判別するには、Loader オブジェクトの contentLoaderInfo
プロパティに関連付けられた LoaderInfo オブジェクトの次のイベントを監視します。
open
イベントは、読み込みが開始したときに送出されます。ioError
またはsecurityError
イベントは、ファイルを読み込めない場合、あるいは読み込み中にエラーが発生した場合に送出されます。progress
イベントは、ファイルが読み込まれている間、継続的に発生します。complete
イベントは、ファイルのダウンロードが完了したときに送出されます。ただし、この時点では、読み込まれたムービークリップのメソッドとプロパティはまだ使用できません。init
イベントは、読み込まれた SWF ファイルのプロパティおよびメソッドにアクセスできるようになると、送出されます。そのため、読み込まれた SWF ファイルに対して各種の操作を開始できます。このイベントは、complete
ハンドラーの前に送出されます。ストリーミング SWF ファイルの場合、init
イベントはcomplete
イベントよりもかなり前に発生することがあります。ほとんどの場合、init
ハンドラーを使用します。
注意(iOS のみ):iOS での AIR アプリケーションでは、アプリケーションパッケージからロードする場合のみ、ActionScript を含む SWF ファイルをロードできます。この制約では、ActionScript 向けに書き出されたクラス名を含むアセットなどの、あらゆる ActionScript が対象となります。あらゆる SWF ファイルをロードするためには、親 SWF と同じアプリケーションドメインを使用して SWF をロードする必要があります。
AIR 3.6 より前のバージョンでは、アプリケーションパッケージからロードする場合でも、ネットワーク経由でロードする場合でも、ロードできるのは ActionScript バイトコードを含まない SWF ファイルのみです。ActionScript を含む外部 SWF ファイルを使用する代わりに、SWC ライブラリを作成し、そのライブラリをメイン SWF にリンクしてください。
これらの制約は、アプリケーションを iOS シミュレーター(ipa-test-interpreter-simulator もしくは ipa-debug-interpreter-simulator)またはインタープリターモード(ipa-test-interpreter もしくは ipa-debug-interpreter)で実行する場合には適用されません。
関連する API エレメント
close | () | メソッド |
public function close():void
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
Loader インスタンスに対して現在進行中の load()
メソッドの処理をキャンセルします。
関連する API エレメント
load | () | メソッド |
public function load(request:URLRequest, context:LoaderContext = null):void
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
SWF、JPEG、プログレッシブ JPEG、非アニメーション GIF、または PNG ファイルを、この Loader オブジェクトの子であるオブジェクトにロードします。アニメーション GIF ファイルを読み込むと、先頭のフレームのみ表示されます。Loader オブジェクトには子を 1 つだけしか含めることができないため、後続の load()
要求を発行すると直前の要求(保留中であれば)を終了し、新たに読み込みを開始します。
注意:AIR 1.5 および Flash Player 10 では、読み込まれるイメージの最大サイズは幅または高さが 8,191 ピクセルです。ただし、総ピクセル数が 16,777,215 ピクセルを超えることはできません(したがって、読み込まれるイメージの幅が 8,191 ピクセルであった場合、高さは 2,048 ピクセルまでしか指定できません)。Flash Player 9 以前および AIR 1.1 以前では、高さの限界は 2,880 ピクセルで幅の限界は 2,880 ピクセルです。
Loader オブジェクトに読み込んだ SWF ファイルまたはイメージは、その Loader オブジェクトの親の表示オブジェクトの位置、回転、および拡大 / 縮小の各プロパティを継承します。
このメソッドを使用して読み込まれたムービーまたはイメージを削除したり、進行中の読み込み処理をキャンセルするには、unload()
メソッドを使用します。
SWF ファイルがこのメソッドを使用しないようにするには、SWF コンテンツを含んでいる HTML ページに allowNetworking
パラメーター(object
タグおよび embed
タグのパラメーター)を設定します。
iOS の場合の注意点
iOS での AIR アプリケーションでは、アプリケーションパッケージからロードする場合のみ、ActionScript を含む SWF ファイルをロードできます。この制約では、ActionScript 向けに書き出されたクラス名を含むアセットなどの、あらゆる ActionScript が対象となります。あらゆる SWF ファイルをロードするためには、以下の例のように、親 SWF と同じアプリケーションドメインを使用して SWF をロードする必要があります。
var loader:Loader = new Loader(); var url:URLRequest = new URLRequest("swfs/SecondarySwf.swf"); var loaderContext:LoaderContext = new LoaderContext(false, ApplicationDomain.currentDomain, null); loader.load(url, loaderContext);
また、iOS では、ActionScript バイトコード(ABC)を含む SWF ファイルをロードしてからアンロードし、再度ロードすることはできません。これを行おうとすると、ランタイムでエラー 3764 が発生します。
AIR 3.6 より前のバージョンでは、アプリケーションパッケージからロードする場合でも、ネットワーク経由でロードする場合でも、ロードできるのは ActionScript バイトコードを含まない SWF ファイルのみです。ActionScript を含む外部 SWF ファイルを使用する代わりに、SWC ライブラリを作成し、そのライブラリをメイン SWF にリンクしてください。
これらの制約は、アプリケーションを iOS シミュレーター(ipa-test-interpreter-simulator もしくは ipa-debug-interpreter-simulator)またはインタープリターモード(ipa-test-interpreter もしくは ipa-debug-interpreter)で実行する場合には適用されません。
Loader のセキュリティ
このメソッドを使用するときは、Loader クラスの説明にある Flash Player セキュリティモデルを考慮してください。
Flash Player 10 以降では、"multipart/form-data" などのマルチパート Content-Type にアップロードが含まれていると(アップロードが含まれているかどうかは POST ボディ内の "content-disposition" ヘッダーの "filename" パラメーターで示されます)、そのアップロードに適用されるセキュリティ規則によって POST 処理が拘束されます。
- POST 処理は、マウスのクリックやキーの押下などのユーザーが開始したアクションに応答して実行する必要があります。
- POST 処理がクロスドメインである(POST ターゲットが、POST 要求を送信中の SWF ファイルと同じサーバー上にない)場合は、クロスドメインアクセスを許可する URL ポリシーファイルをターゲットサーバーが提供する必要があります。
また、すべてのマルチパート Content-Type では、RFC2046 標準に準拠した有効なシンタックスを使用する必要があります。シンタックスが有効でない場合は、アップロードに適用されるセキュリティ規則によって POST 処理が拘束されます。
セキュリティについて詳しくは、Flash Player デベロッパーセンターのトピック:セキュリティを参照してください。
パラメーター
request:URLRequest — 読み込む SWF、JPEG、GIF、または PNG ファイルの絶対 URL または相対 URL です。相対パスの場合は、メイン SWF ファイルを基準にする必要があります。絶対 URL の場合は、http:// や file:/// などのプロトコル参照も含める必要があります。ファイル名には、ドライブ指定を含めることはできません。
| |
context:LoaderContext (default = null ) — 次の定義を行うプロパティのある、LoaderContext オブジェクトです。
iOS のみ:AIR for iOS で 完全な詳細については、LoaderContext クラスのプロパティの説明を参照してください。 |
イベント
asyncError: — LoaderContext.requestedContentParent プロパティが指定されており、かつ指定された DisplayObjectContainer にロードされるコンテンツを子として追加できない場合に、 contentLoaderInfo オブジェクトによって送出されます。これは、ロードされるコンテンツが flash.display.AVM1Movie であるか、または addChild() の呼び出しがエラーをスローした場合に発生します。
| |
complete: — ファイルのロードが完了したときに contentLoaderInfo オブジェクトによって送出されます。complete イベントは、常に、init イベントの後に送出されます。
| |
httpStatus: — ネットワーク要求が HTTP 上で行われ、Flash Player が HTTP ステータスコードを検出できる場合に contentLoaderInfo オブジェクトによって送出されます。
| |
init: — ロードされた SWF ファイルのプロパティおよびメソッドにアクセスできる場合に、contentLoaderInfo オブジェクトによって送出されます。init イベントは、常に、complete イベントの前に送出されます。
| |
ioError: — 入出力エラーが発生してロード処理が失敗したときに、contentLoaderInfo オブジェクトによって送出されます。
| |
open: — ロード処理が開始したときに、contentLoaderInfo オブジェクトによって送出されます。
| |
progress: — ロード処理を実行中にデータを受信したときに、contentLoaderInfo オブジェクトによって送出されます。
| |
securityError: — ローカルファイルシステムのサンドボックス内の SWF ファイルがネットワーク接続したローカルのサンドボックス内のコンテンツをロードしようとしたか、またはその逆の場合に、contentLoaderInfo オブジェクトによって送出されます。
| |
securityError: — LoaderContext.requestedContentParent プロパティが指定されており、LoaderContext.requestedContentParent のセキュリティサンドボックスがロードされる SWF へのアクセスを持たない場合に、contentLoaderInfo オブジェクトによって送出されます。
| |
unload: — ロードされたオブジェクトが削除されるときに、contentLoaderInfo オブジェクトによって送出されます。
|
例外
IOError — request オブジェクトの digest プロパティが null ではありません。URLRequest オブジェクトの digest プロパティを設定できるのは、URLLoader.load() メソッドを呼び出して SWZ ファイル(Adobe プラットフォームコンポーネント)を読み込む場合のみです。
| |
SecurityError — LoaderContext.securityDomain の値は、null または SecurityDomain.currentDomain のいずれかである必要があります。つまり、ロードされたメディアは、通常のセキュリティサンドボックスまたは独自のサンドボックスのいずれかにしか配置できません。後者の場合は、ポリシーファイルが必要です。
| |
SecurityError — ローカル SWF ファイルでは、LoaderContext.securityDomain に null 以外の値を設定できません。また、ローカルでないメディアのローカルサンドボックスへのインポート、およびローカルメディアの通常のサンドボックス以外の場所への配置は許可されません。
| |
SecurityError — 一般的な予約ポートには接続できません。遮断されたポートの詳しいリストについては、『ActionScript 3.0 開発ガイド』の「ネットワーク API の制限」を参照してください。
| |
SecurityError — applicationDomain または securityDomain プロパティ(context パラメーターのプロパティ)が、許可されていないドメインのものであった場合
| |
SecurityError — ローカル SWF ファイルが、securityDomain プロパティ(context パラメーターのプロパティ)を使用しようとした場合
| |
IllegalOperationError — requestedContentParent プロパティ(context パラメーターのプロパティ)が Loader の場合。
| |
IllegalOperationError — LoaderContext.parameters パラメーターが null 以外で、Strings 型以外の値を持つ場合。
| |
IllegalOperationError — iOS で、メインアプリケーションドメイン以外のアプリケーションドメインで SWF ファイルをロードしようとした場合。
| |
IllegalOperationError — iOS で、ロードされアンロードされた SWF と、ABC コードを含む SWF をリロードしようとした場合。
| |
Error — iOS で、ActionScript コードを含む SWF ファイルをアプリケーションドメインの外部からロードしようとした場合。このエラーはキャッチできません。このエラーは、アプリケーション画面上に「ActionScript がコンパイルされていません」というタイトルのダイアログボックスとして表示されます。AIR 3.6 より前のバージョンでは、このエラーは ActionScript を含む SWF ファイルをロードしようとしたときに発生します(SWF ファイルが外部にある場合でも、アプリケーションパッケージに含まれている場合でも発生)。
|
関連する API エレメント
loadBytes | () | メソッド |
public function loadBytes(bytes:ByteArray, context:LoaderContext = null):void
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
ByteArray オブジェクトに保管されているバイナリデータからロードします。
loadBytes()
メソッドは、非同期のメソッドです。読み込まれたオブジェクトのプロパティにアクセスする前に「init」イベントを待機する必要があります。
このメソッドを使用するときは、Loader クラスの説明にある Flash Player セキュリティモデルを考慮してください。
注意(iOS のみ):iOS での AIR アプリケーションでは、アプリケーションパッケージからロードする場合のみ、ActionScript を含む SWF ファイルをロードできます。この制約では、ActionScript 向けに書き出されたクラス名を含むアセットなどの、あらゆる ActionScript が対象となります。あらゆる SWF ファイルをロードするためには、親 SWF と同じアプリケーションドメインを使用して SWF をロードする必要があります。
AIR 3.6 より前のバージョンでは、iOS ではこのメソッドの効果はありません。
パラメーター
bytes:ByteArray — ByteArray オブジェクトです。ByteArray の内容としては、Loader クラスがサポートする SWF、GIF、JPEG、PNG のうちの任意のファイル形式を使用できます。
| |
context:LoaderContext (default = null ) — LoaderContext オブジェクトです。LoaderContext オブジェクトの applicationDomain プロパティのみが適用され、LoaderContext オブジェクトの checkPolicyFile および securityDomain プロパティは適用されません。
セキュリティについて詳しくは、Flash Player デベロッパーセンターのトピック:セキュリティを参照してください。 |
イベント
asyncError: — LoaderContext.requestedContentParent プロパティが指定されており、かつ指定された DisplayObjectContainer にロードされるコンテンツを子として追加できない場合に、 contentLoaderInfo オブジェクトによって送出されます。これは、ロードされるコンテンツが flash.display.AVM1Movie であるか、または addChild() の呼び出しがエラーをスローした場合に発生します。
| |
complete: — 操作が完了すると、contentLoaderInfo オブジェクトによって送出されます。complete イベントは、常に、init イベントの後に送出されます。
| |
init: — ロードされたデータのプロパティおよびメソッドにアクセスできる場合に、contentLoaderInfo オブジェクトによって送出されます。init イベントは、常に、complete イベントの前に送出されます。
| |
ioError: — ランタイムでバイト配列内のデータを解析できない場合に、contentLoaderInfo オブジェクトによって送出されます。
| |
open: — 操作が開始したときに、contentLoaderInfo オブジェクトによって送出されます。
| |
progress: — データがメモリに転送されると、contentLoaderInfo オブジェクトによって送出されます。
| |
securityError: — LoaderContext.requestedContentParent プロパティが指定されており、LoaderContext.requestedContentParent のセキュリティサンドボックスがロードされる SWF へのアクセスを持たない場合に、contentLoaderInfo オブジェクトによって送出されます。
| |
unload: — ロードされたオブジェクトが削除されるときに、contentLoaderInfo オブジェクトによって送出されます。
|
例外
ArgumentError — ByteArray オブジェクトの length プロパティが 0 以下であった場合
| |
IllegalOperationError — checkPolicyFile または securityDomain プロパティ(context パラメーターのプロパティ)が null 以外であった場合
| |
IllegalOperationError — requestedContentParent プロパティ(context パラメーターのプロパティ)が Loader の場合。
| |
IllegalOperationError — LoaderContext.parameters パラメーターが null 以外で、Strings 型以外の値を持つ場合。
| |
IllegalOperationError — iOS で、メインアプリケーションドメイン以外のアプリケーションドメインで SWF ファイルをロードしようとした場合。
| |
IllegalOperationError — iOS で、ロードされアンロードされ、ABC コードを含む SWF をリロードしようとした場合。
| |
Error — iOS で、ActionScript コードを含む SWF ファイルをアプリケーションドメインの外部からロードしようとした場合。このエラーはキャッチできません。このエラーは、アプリケーション画面上に「ActionScript がコンパイルされていません」というメッセージを含むダイアログボックスとして表示されます。AIR 3.6 より前のバージョンでは、このエラーは ActionScript を含む SWF ファイルをロードしようとしたときに発生します(SWF ファイルが外部にある場合でも、アプリケーションパッケージに含まれている場合でも発生)。
| |
SecurityError — applicationDomain プロパティ(受け取った context プロパティのプロパティ)が、許可されていないドメインのものであった場合
| |
SecurityError — 一般的な予約ポートには接続できません。遮断されたポートの詳しいリストについては、『ActionScript 3.0 開発ガイド』の「ネットワーク API の制限」を参照してください。
|
関連する API エレメント
loadFilePromise | () | メソッド |
public function loadFilePromise(promise:IFilePromise, context:LoaderContext = null):void
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 2.5 |
IFilePromise インスタンスを読み込みます。
loadFilePromise
メソッドは IFilePromise
オブジェクトを使用し、バイナリデータを読み込みます。ビデオなど、データがプログレッシブストリームの場合、読み込まれたオブジェクトのプロパティにアクセスする前に、"init" または progress イベントを待ちます。それ以外の場合、データが完全に読み込まれたことを確認する complete イベントを待ちます。
このメソッドを使用するときは、Loader クラスの説明にある Flash Player セキュリティモデルを考慮してください。
パラメーター
promise:IFilePromise — IFilePromise オブジェクトです。オブジェクトのデータソースとしては、Loader クラスがサポートする SWF、GIF、JPEG、PNG のうちの任意のファイル形式を使用できます。
| |
context:LoaderContext (default = null ) — LoaderContext オブジェクトです。LoaderContext オブジェクトの applicationDomain プロパティのみが適用され、LoaderContext オブジェクトの checkPolicyFile および securityDomain プロパティは適用されません。
セキュリティについて詳しくは、Flash Player デベロッパーセンターのトピック:セキュリティを参照してください。 |
イベント
asyncError: — LoaderContext.requestedContentParent プロパティが指定されており、かつ指定された DisplayObjectContainer にロードされるコンテンツを子として追加できない場合に、 contentLoaderInfo オブジェクトによって送出されます。これは、ロードされるコンテンツが flash.display.AVM1Movie であるか、または addChild() の呼び出しがエラーをスローした場合に発生します。
| |
complete: — 操作が完了すると、contentLoaderInfo オブジェクトによって送出されます。complete イベントは、常に、init イベントの後に送出されます。
| |
init: — ロードされたデータのプロパティおよびメソッドにアクセスできる場合に、contentLoaderInfo オブジェクトによって送出されます。init イベントは、常に、complete イベントの前に送出されます。
| |
ioError: — ランタイムでデータソースのデータを解析できない場合、またはデータソースストリームが読み取り不可能な場合、contentLoaderInfo オブジェクトから送出されます。
| |
open: — 操作が開始したときに、contentLoaderInfo オブジェクトによって送出されます。
| |
progress: — データがメモリに転送されると、contentLoaderInfo オブジェクトによって送出されます。
| |
securityError: — LoaderContext.requestedContentParent プロパティが指定されており、LoaderContext.requestedContentParent のセキュリティサンドボックスがロードされる SWF へのアクセスを持たない場合に、contentLoaderInfo オブジェクトによって送出されます。
| |
unload: — ロードされたオブジェクトが削除されるときに、contentLoaderInfo オブジェクトによって送出されます。
|
例外
IllegalOperationError — requestedContentParent プロパティ(context パラメーターのプロパティ)が Loader の場合。
| |
IllegalOperationError — LoaderContext.parameters パラメーターが null 以外で、Strings 型以外の値を持つ場合。
| |
ArgumentError — パラメーターとして渡された IFilePromise オブジェクトが null の場合。
|
関連する API エレメント
unload | () | メソッド |
public function unload():void
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
load()
メソッドを使用してロードされた、この Loader オブジェクトの子を削除します。関連した LoaderInfo オブジェクトの property
は null
にリセットされます。他のオブジェクトが参照している可能性があるので、子は必ずしも破棄されるとは限りません。ただし、Loader オブジェクトの子ではなくなります。
unload()
メソッドを呼び出したときに、Loader オブジェクトの contentLoaderInfo
プロパティが null
に設定されます。SWF と一緒にロードされたすべての視覚的アセットがアンロードされ、メモリから削除されます。ロードされた SWF 内の ActionScript クラス定義はメモリ内に残され、ロードされた SWF と同じアプリケーションドメイン内のコードでこれらのクラスのインスタンスにアクセスして、新しいインスタンスを作成できます。
注意(iOS のみ):AIR 3.6 より前のバージョンでは、iOS ではこのメソッドの効果はありません。
子 SWF ファイルを解放する前に、LocalConnection、NetConnection、NetStream、Sound オブジェクトなど、子 SWF ファイルのオブジェクト内のストリームをすべて明示的に閉じておくことをお勧めします。そうしなかった場合は、子 SWF ファイルが解放された後も、子 SWF ファイルのオーディオの再生が続く場合があります。子 SWF ファイルのストリームを閉じるには、unload
イベントを受け取る子にイベントリスナーを追加します。親が Loader.unload()
を呼び出すと、unload
イベントが子に対して送出されます。次のコードは、このような処理を行う例を示します。
function closeAllStreams(evt:Event) { myNetStream.close(); mySound.close(); myNetConnection.close(); myLocalConnection.close(); } myMovieClip.loaderInfo.addEventListener(Event.UNLOAD, closeAllStreams);
関連する API エレメント
unloadAndStop | () | メソッド |
public function unloadAndStop(gc:Boolean = true):void
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | Flash Player 10, AIR 1.5, Flash Lite 4 |
子 SWF ファイルの内容のアンロードを試み、ロードされた SWF ファイルのコマンドの実行を中止します。このメソッドは、Loader.load()
または Loader.loadBytes()
を使用してロードされた SWF ファイルのアンロードを試みます。このために、子 SWF ファイルの EventDispatcher、NetConnection、Timer、Sound、または Video オブジェクトへの参照を削除します。この結果、子 SWF ファイルおよび子 SWF ファイルの表示リストで以下が行われます。
- サウンドが停止されます。
- Stage イベントリスナーが削除されます。
enterFrame
、frameConstructed
、exitFrame
、activate
、およびdeactivate
のイベントリスナーが削除されます。- タイマーが停止されます。
- Camera インスタンスおよび Microphone インスタンスがデタッチされます。
- ムービークリップが停止されます。
unloadAndStop()
メソッドを呼び出したときに、Loader オブジェクトの contentLoaderInfo
プロパティが null
に設定されます。SWF と一緒にロードされたすべての視覚的アセットがアンロードされ、メモリから削除されます。ロードされた SWF 内の ActionScript クラス定義はメモリ内に残され、ロードされた SWF と同じアプリケーションドメイン内のコードでこれらのクラスのインスタンスにアクセスして、新しいインスタンスを作成できます。
注意(iOS のみ):AIR 3.6 より前のバージョンでは、iOS ではこのメソッドの効果はありません。
パラメーター
gc:Boolean (default = true ) — 子 SWF オブジェクトでガベージコレクターが実行されるようにヒントを提供するかどうかを指定します(true または false )。多数のオブジェクトを非同期でアンロードする場合は、gc パラメーターを false に設定するとアプリケーションのパフォーマンスが向上する可能性があります。ただし、このパラメーターを false に設定した場合は、unloadAndStop() コマンドの実行後も子 SWF ファイルのメディアオブジェクトおよび表示オブジェクトがメモリに残ることがあります。
|
関連する API エレメント
url
プロパティを作成します。これはイメージファイルの場所と名前です。LoaderExample
コンストラクターでは、loader
という名前の新しい Loader オブジェクトが作成され、手順 3 出説明するconfigureListeners()
メソッドに渡されます。- コンストラクターは、
request
という URLRequest オブジェクトの新しいインスタンスを作成しますが、その前に、ファイル名と場所が分かるようにurl
を渡します。 request
オブジェクトがloader
オブジェクトのload()
メソッドに渡されます。これにより、イメージが表示リストにロードされます。clickHandler
イベントリスナーがローダーのclick
イベントに対して登録されます。マウスをクリックすると、ロードされたイメージはアンロードされます。configureListeners()
メソッドは、次のメソッドを使用して、7 つのイベントリスナーを追加します。completeHandler()
メソッドは、イメージのロードが完了したときに実行されます。httpStatusHandler()
メソッドは、イメージがローカルにロードされない場合で、ネットワーク要求を行うことができ、Flash Player がそれを検出できる場合にのみ実行されます。initHandler()
メソッドが実行されるのは、completeHandler()
メソッドの前、progressHandler()
メソッドの後です。一般的には、SWF ファイルをロードするとき、init
イベントの方が便利です。ioErrorHandler()
メソッドは、イメージファイルを使用できないか、イメージファイルにアクセスできない場合に実行されます。openHandler()
メソッドは、イメージファイルが最初に開かれたときに実行されます。progressHandler()
メソッドは、イメージファイルのロードが開始したときに実行され、イメージのロードが完了したときに再び実行されます。unLoadHandler()
メソッドは、ユーザーがイメージをクリックしたときにunload()
メソッドを使用してイメージがアンロードされた場合に実行されます。
次の要件に注意してください。
- この例では、Image.gif という名前のファイルがコンパイル済み SWF ファイルと同じディレクトリに配置されている必要があります。メイン SWF ファイルのサイズ内に収まる領域を持つイメージを使用します。
- この例では、LoaderInfo オブジェクトで使用可能なすべてのイベントを利用しますが、ほとんどの場合、必要になるのは 1 つのサブセットのみです。特に、イメージファイルをロードするだけの場合は、ローカルイメージをロードするときの
complete
イベント(および必要に応じてioError
イベント)で十分です。
package { import flash.display.Loader; import flash.display.Sprite; import flash.events.*; import flash.net.URLRequest; public class LoaderExample extends Sprite { private var url:String = "Image.gif"; public function LoaderExample() { var loader:Loader = new Loader(); configureListeners(loader.contentLoaderInfo); loader.addEventListener(MouseEvent.CLICK, clickHandler); var request:URLRequest = new URLRequest(url); loader.load(request); addChild(loader); } private function configureListeners(dispatcher:IEventDispatcher):void { dispatcher.addEventListener(Event.COMPLETE, completeHandler); dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler); dispatcher.addEventListener(Event.INIT, initHandler); dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); dispatcher.addEventListener(Event.OPEN, openHandler); dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler); dispatcher.addEventListener(Event.UNLOAD, unLoadHandler); } private function completeHandler(event:Event):void { trace("completeHandler: " + event); } private function httpStatusHandler(event:HTTPStatusEvent):void { trace("httpStatusHandler: " + event); } private function initHandler(event:Event):void { trace("initHandler: " + event); } private function ioErrorHandler(event:IOErrorEvent):void { trace("ioErrorHandler: " + event); } private function openHandler(event:Event):void { trace("openHandler: " + event); } private function progressHandler(event:ProgressEvent):void { trace("progressHandler: bytesLoaded=" + event.bytesLoaded + " bytesTotal=" + event.bytesTotal); } private function unLoadHandler(event:Event):void { trace("unLoadHandler: " + event); } private function clickHandler(event:MouseEvent):void { trace("clickHandler: " + event); var loader:Loader = Loader(event.target); loader.unload(); } } }
Tue Jun 12 2018, 10:34 AM Z