套件flash.display
類別public class Loader
繼承Loader Inheritance DisplayObjectContainer Inheritance InteractiveObject Inheritance DisplayObject Inheritance EventDispatcher Inheritance Object

語言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

Loader 類別可用來載入 SWF 檔案或影像檔 (JPG、PNG 或 GIF)。 請使用 load() 方法來起始載入。 載入的顯示物件會當做 Loader 物件的子系加入。

請使用 URLLoader 類別來載入文字或二進位資料。

Loader 類別會覆寫下列所繼承的方法,因為 Loader 物件只擁有一個子顯示物件,也就是它所載入的顯示物件。 呼叫下列方法會擲出例外:addChild()addChildAt()removeChild()removeChildAt()setChildIndex()。 若要移除所載入的顯示物件,必須將 Loader 物件從其上層的 DisplayObjectContainer 子陣列中移除。

注意:ActionScript 2.0 MovieClipLoader 與 LoadVars 類別都不能在 ActionScript 3.0 中使用。 Loader 與 URLLoader 類別已經取代這兩個類別。

使用 Loader 類別時,也請考慮 Flash Player 安全性模型:

如需詳細資訊,請參閱下列章節:

當您從不受信任的來源載入 SWF 檔案 (例如與 Loader 物件的根 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);
 

檢視範例

請參閱

flash.display.LoaderInfo
flash.net.URLLoader
flash.display.DisplayObject
核心顯示類別
載入顯示物件


公用 屬性
 屬性定義自
 InheritedaccessibilityProperties : AccessibilityProperties
此顯示物件的目前輔助功能選項。
DisplayObject
 Inheritedalpha : Number
指出所指定物件的 Alpha 透明度值。
DisplayObject
 InheritedblendMode : String
來自 BlendMode 類別的值¡會指定要使用何種混合模式。
DisplayObject
 InheritedcacheAsBitmap : Boolean
如果設為 true,Flash Player 會快取顯示物件的內部點陣圖表示法。
DisplayObject
 Inheritedconstructor : Object
類別物件的參照或是特定物件實體的建構函數。
Object
  content : DisplayObject
[read-only] 包含使用 load() 或 loadBytes() 方法載入之 SWF 檔案或影像檔 (JPG、PNG、或 GIF) 的根顯示物件。
Loader
  contentLoaderInfo : LoaderInfo
[read-only] 傳回與載入中物件相對應的 LoaderInfo 物件。
Loader
 InheritedcontextMenu : ContextMenu
指定與此物件有關聯的快顯選單。
InteractiveObject
 InheriteddoubleClickEnabled : Boolean
會指定物件是否會收到 doubleClick 事件。
InteractiveObject
 Inheritedfilters : Array
索引的陣列,其中包含目前和顯示物件相關的每個濾鏡物件。
DisplayObject
 InheritedfocusRect : Object
會指定這個物件是否會顯示焦點矩形。
InteractiveObject
 Inheritedheight : Number
指出顯示物件的高度¡以像素為單位。
DisplayObject
 InheritedloaderInfo : LoaderInfo
[read-only] 會傳回 LoaderInfo 物件¡其中包含關於載入此顯示物件所屬之檔案的資訊。
DisplayObject
 Inheritedmask : DisplayObject
呼叫之顯示物件會以指定的 mask 物件遮蓋。
DisplayObject
 InheritedmouseChildren : Boolean
判斷物件的子系是否支援啟用滑鼠。
DisplayObjectContainer
 InheritedmouseEnabled : Boolean
會指定這個物件是否會收到滑鼠訊息。
InteractiveObject
 InheritedmouseX : Number
[read-only] 指出滑鼠位置的 x 座標,以像素為單位。
DisplayObject
 InheritedmouseY : Number
[read-only] 指出滑鼠位置的 y 座標,以像素為單位。
DisplayObject
 Inheritedname : String
指出 DisplayObject 的實體名稱。
DisplayObject
 InheritednumChildren : int
[read-only] 傳回此物件的子系數量。
DisplayObjectContainer
 InheritedopaqueBackground : Object
會指定顯示物件是否不透明¡並具有特定背景顏色。
DisplayObject
 Inheritedparent : DisplayObjectContainer
[read-only] 指出包含此顯示物件的 DisplayObjectContainer 物件。
DisplayObject
 Inheritedprototype : Object
[static] 類別或函數物件之原型物件的參照。
Object
 Inheritedroot : DisplayObject
[read-only] 對載入之 SWF 檔案的顯示物件而言,root 屬性就是該 SWF 檔案所呈現之顯示清單樹狀結構部分的最上層顯示物件。
DisplayObject
 Inheritedrotation : Number
指出 DisplayObject 實體的旋轉度數 (從該物件原本方向算起)。
DisplayObject
 Inheritedscale9Grid : Rectangle
目前產生效用的縮放格線。
DisplayObject
 InheritedscaleX : Number
指出從註冊點套用的物件水平縮放 (percentage)。
DisplayObject
 InheritedscaleY : Number
指出從物件註冊點套用的物件垂直縮放 (percentage)。
DisplayObject
 InheritedscrollRect : Rectangle
顯示物件的捲動矩形範圍。
DisplayObject
 Inheritedstage : Stage
[read-only] 顯示物件的「舞台」。
DisplayObject
 InheritedtabChildren : Boolean
判斷物件的子系是否支援啟用定位鍵。
DisplayObjectContainer
 InheritedtabEnabled : Boolean
會指定這個物件是否在停駐點順序中。
InteractiveObject
 InheritedtabIndex : int
會指定 SWF 檔中的物件停駐點順序。
InteractiveObject
 InheritedtextSnapshot : TextSnapshot
[read-only] 傳回此 DisplayObjectContainer 實體的 TextSnapshot 物件。
DisplayObjectContainer
 Inheritedtransform : Transform
這是一個物件,具有和顯示物件的矩陣、顏色變化和像素邊界有關的屬性。
DisplayObject
 Inheritedvisible : Boolean
不管是否看得見顯示物件。
DisplayObject
 Inheritedwidth : Number
指出顯示物件的寬度¡以像素為單位。
DisplayObject
 Inheritedx : Number
指出 DisplayObject 實體相對於父輩 DisplayObjectContainer 之區域座標的 x 座標。
DisplayObject
 Inheritedy : Number
指出 DisplayObject 實體相對於父輩 DisplayObjectContainer 之區域座標的 y 座標。
DisplayObject
公用 方法
 方法定義自
  
建立一個 Loader 物件,可用來載入檔案 (如 SWF、JPEG、GIF,或是 PNG 檔)。
Loader
 Inherited
將 DisplayObject 子實體加入至此 DisplayObjectContainer 實體。
DisplayObjectContainer
 Inherited
將 DisplayObject 子實體加入至此 DisplayObjectContainer 實體。
DisplayObjectContainer
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
會在 EventDispatcher 物件註冊事件偵聽程式¡以便讓偵聽程式收到事件的通知。
EventDispatcher
 Inherited
指出安全性限制是否會造成傳回的清單 (可用指定的 point 點呼叫 DisplayObjectContainer.getObjectsUnderPoint() 方法來取得) 省略任何顯示物件。
DisplayObjectContainer
  
取消 Loader 實體目前正在進行中的 load() 方法作業。
Loader
 Inherited
判斷指定的顯示物件是否為 DisplayObjectContainer 實體的子系,或為實體本身。
DisplayObjectContainer
 Inherited
會將事件傳送到事件流程。
EventDispatcher
 Inherited
getBounds(targetCoordinateSpace:DisplayObject):Rectangle
傳回可定義顯示物件區域 (相對於 targetCoordinateSpace 物件的座標系統) 的矩形。
DisplayObject
 Inherited
傳回存在於指定索引位置的子顯示物件實體。
DisplayObjectContainer
 Inherited
傳回具有指定名稱的子顯示物件。
DisplayObjectContainer
 Inherited
傳回 child DisplayObject 實體的索引位置。
DisplayObjectContainer
 Inherited
傳回位於指定點底下,且屬於此 DisplayObjectContainer 實體之子系 (或孫系,以下類推) 的物件陣列。
DisplayObjectContainer
 Inherited
getRect(targetCoordinateSpace:DisplayObject):Rectangle
根據 targetCoordinateSpace 參數所定義的座標系統,並排除形狀上的任何筆畫,傳回可定義顯示物件邊界的矩形。
DisplayObject
 Inherited
將 point 物件從「舞台」(全域) 座標轉換成顯示物件的 (區域) 座標。
DisplayObject
 Inherited
會檢查 EventDispatcher 物件是否有對特定的事件類型註冊偵聽程式。
EventDispatcher
 Inherited
指出物件是否有已定義的指定屬性。
Object
 Inherited
評估顯示物件,看它是否與 obj 顯示物件重疊或相交。
DisplayObject
 Inherited
hitTestPoint(x:Number, y:Number, shapeFlag:Boolean = false):Boolean
評估顯示物件,看它是否與 x 和 y 參數所指定的點重疊或相交。
DisplayObject
 Inherited
指出 Object 類別的實體是否位於指定為參數的物件原型鏈中。
Object
  
load(request:URLRequest, context:LoaderContext = null):void
將 SWF、JPEG、漸進式 JPEG、不含動畫的 GIF,或 PNG 檔載入此 Loader 物件的子物件中。
Loader
  
loadBytes(bytes:ByteArray, context:LoaderContext = null):void
載入儲存在 ByteArray 物件中的二進位資料。
Loader
 Inherited
將 point 物件從顯示物件的 (區域) 座標轉換成「舞台」(全域) 座標。
DisplayObject
 Inherited
指出指定的屬性是否存在,以及是否可列舉。
Object
 Inherited
將指定的 child DisplayObject 實體從 DisplayObjectContainer 實體的子清單中移除。
DisplayObjectContainer
 Inherited
從 DisplayObjectContainer 子清單中的指定 index 位置移除子 DisplayObject。
DisplayObjectContainer
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
會從 EventDispatcher 物件移除偵聽程式。
EventDispatcher
 Inherited
變更顯示物件容器中現有子系的位置。
DisplayObjectContainer
 Inherited
為迴圈作業設定動態屬性的可用性。
Object
 Inherited
替換兩個指定子物件的 z 順序 (深度階層,由前至後順序)。
DisplayObjectContainer
 Inherited
swapChildrenAt(index1:int, index2:int):void
在子清單的兩個指定索引位置,替換子物件的 z 順序 (深度階層,由前至後順序)。
DisplayObjectContainer
 Inherited
會傳回指定之物件的字串形式。
Object
  
移除使用 load() 方法載入之 Loader 物件的子系。
Loader
 Inherited
會傳回指定之物件的基本值。
Object
 Inherited
檢查此 EventDispatcher 物件是否已註冊為事件偵聽程式,或者此物件的任何祖先已註冊為特定的事件類型。
EventDispatcher
事件
 事件 摘要 定義自
 Inherited 當 Flash Player 取得作業系統焦點並成為作用中狀態時傳送。EventDispatcher
 Inherited 當顯示物件加入顯示清單中時傳送。DisplayObject
 Inherited 會在顯示物件加入舞台上的顯示清單時,以直接或是透過加入包含該顯示物件之子樹狀結構的方式傳送。DisplayObject
 Inherited 會當使用者在相同的 InteractiveObject 上方按下並放開使用者的指向裝置主按鈕時傳送。InteractiveObject
 Inherited 當 Flash Player 失去作業系統焦點並成為停用狀態時傳送。EventDispatcher
 Inherited 在 InteractiveObject 物件的 doubleClickEnabled 旗標設為 true 的情況下,當使用者在相同的物件上方連續兩次快速按下並放開指標裝置主要按鈕時傳送。InteractiveObject
 Inherited 會當播放磁頭進入新影格時傳送。DisplayObject
 Inherited 當顯示物件取得焦點之後傳送。InteractiveObject
 Inherited 當顯示物件失去焦點時傳送。InteractiveObject
 Inherited 會當使用者按下按鍵時傳送。InteractiveObject
 Inherited 當使用者嘗試使用鍵盤瀏覽變更焦點時傳送。InteractiveObject
 Inherited 會當使用者放開按鍵時傳送。InteractiveObject
 Inherited 會當使用者在 Flash Player 視窗中的 InteractiveObject 實體上方按下指向裝置按鈕時傳送。InteractiveObject
 Inherited 會當使用者嘗試使用指向裝置變更焦點時傳送。InteractiveObject
 Inherited 會當指向裝置停在 InteractiveObject 上方的情況下使用者將其移動時傳送。InteractiveObject
 Inherited 會當使用者將指向裝置移開 InteractiveObject 實體時傳送。InteractiveObject
 Inherited 會當使用者在 Flash Player 視窗中將指向裝置移到 InteractiveObject 實體上方時傳送。InteractiveObject
 Inherited 會當使用者在 Flash Player 視窗中的 InteractiveObject 實體上方放開指向裝置按鈕時傳送。InteractiveObject
 Inherited 會當滑鼠滾輪在 Flash Player 視窗中的 InteractiveObject 實體上方轉動時傳送。InteractiveObject
 Inherited 會當顯示物件將要從顯示清單移除時傳送。DisplayObject
 Inherited 會在顯示物件即將從顯示清單移除時,以直接或是透過移除包含該顯示物件之子樹狀結構的方式傳送。DisplayObject
 Inherited 會當顯示清單將要更新和顯示時傳送。DisplayObject
 Inherited 會當使用者將指向裝置移開 InteractiveObject 實體時傳送。InteractiveObject
 Inherited 會當使用者將指向裝置移至 InteractiveObject 實體上方時傳送。InteractiveObject
 Inherited 在物件的 tabChildren 旗標值變更時傳送。InteractiveObject
 Inherited 在物件的 tabEnabled 旗標變更時傳送。InteractiveObject
 Inherited 在物件的 tabIndex 屬性值變更時傳送。InteractiveObject
屬性詳細資訊
content屬性
content:DisplayObject  [read-only]

語言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

包含使用 load()loadBytes() 方法載入的 SWF 檔案或影像檔 (JPG、PNG、或 GIF) 的根顯示物件。


實作
    public function get content():DisplayObject

擲回值
SecurityError — 載入的 SWF 檔案或影像檔屬於您無法存取的安全執行程序。 如果是載入的 SWF 檔,您可以在呼叫 load()loadBytes() 方法時,讓檔案呼叫 Security.allowDomain() 方法,或讓載入中的檔案指定 loaderContext 參數,便可以將 securityDomain 屬性設為 SecurityDomain.currentDomain 並避免這個情況發生。

請參閱

contentLoaderInfo屬性 
contentLoaderInfo:LoaderInfo  [read-only]

語言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

傳回與載入中物件相對應的 LoaderInfo 物件。 Loader 物件與載入的內容物件會共用 LoaderInfo 物件。 LoaderInfo 物件會提供與載入檔案相關的載入進度資訊與統計資料。

與載入有關的事件都會由 LoaderInfo 物件 (由 Loader 物件的 contentLoaderInfo 屬性所參照) 來傳送。 contentLoaderInfo 屬性設定為有效的 LoaderInfo 物件,即使在內容載入之前也一樣,這樣您就能在載入之前,將事件偵聽程式加入物件中。


實作
    public function get contentLoaderInfo():LoaderInfo

請參閱

建構函式詳細資訊
Loader()建構函式
public function Loader()

語言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

建立一個 Loader 物件,可用來載入檔案 (如 SWF、JPEG、GIF,或是 PNG 檔)。 呼叫 load() 方法,將資源做為 Loader 實體的子系載入。 接著,您可以將 Loader 物件載入顯示物件 (例如,您可以使用 DisplayObjectContainer 實體的 addChild() 方法)。 資源會在載入「舞台」時顯示。

您也可以在「清單外」使用 Loader 實體,也就是說,不要將它加入至顯示清單中的顯示物件容器。 在這種模式裡,您可以使用 Loader 實體載入包含額外應用程式模組的 SWF 檔案。

若要偵測 SWF 檔案是否已經完成載入,您可以使用與 Loader 物件的 contentLoaderInfo 屬性關聯之 LoaderInfo 物件事件。 在這個階段,可以執行 SWF 檔案模組中的程式碼來初始化並起始模組。 在「清單外」模式中,您也可以使用 Loader 實體來載入包含組件或媒體資源的 SWF 檔案。 同樣,您也可以使用 LoaderInfo 物件事件通知來偵測組件是否已經完成載入。 在這個階段,應用程式會實體化代表這些元件與資源的 ActionScript 3.0 類別,以使用 SWF 檔案元件庫的組件與媒體資源開始動作。

若要判斷 Loader 物件的狀態,請監視下列與 Loader 物件之 contentLoaderInfo 屬性關聯的 LoaderInfo 物件事件:

請參閱

方法詳細資訊
close()方法
public function close():void

語言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

取消 Loader 實體目前正在進行中的 load() 方法作業。

請參閱

load()方法 
public function load(request:URLRequest, context:LoaderContext = null):void

語言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

將 SWF、JPEG、漸進式 JPEG、不含動畫的 GIF,或 PNG 檔載入此 Loader 物件的子物件中。 如果載入內含動畫的 GIF 檔案,則只會顯示第一個影格。 由於 Loader 物件只能包含一個子系,當您後續發出 load() 要求時,會終止上一個要求 (如果上一個要求正等候執行的話),然後開始新的載入作業。

載入 Loader 物件的 SWF 檔案或影像會繼承 Loader 物件之上層顯示物件的位置、旋轉與縮放屬性。

請使用 unload() 方法,將使用此方法載入的影片或影像移除,或是取消正在進行中的載入作業。

當您使用 load() 方法,也請考慮 Flash Player 安全性模型:

如需詳細資訊,請參閱下列章節:

參數

request:URLRequest — 要載入的 SWF、JPEG、GIF 或 PNG 檔的絕對或相對 URL。 相對路徑必須相對於主要 SWF 檔案。 絕對 URL 必須包含通訊協定參照,例如 http:// 或 file:///。 檔案名稱不能包含磁碟機的規格。
 
context:LoaderContext (default = null) — LoaderContext 物件,具有定義下列事項的屬性:
  • Flash Player 是否應該在載入物件時檢查原則檔案存在與否
  • 載入物件的 ApplicationDomain
  • 載入物件的 SecurityDomain

如需完整清單,請參閱 LoaderContext 類別中的屬性說明。


事件
complete:Event — 會在檔案載入完成時,由相關的 LoaderInfo 物件傳送。 complete 事件一律會在 init 事件之後才傳送。
 
httpStatus:HTTPStatusEvent — 會在透過 HTTP 發出網路要求,且 Flash Player 可以偵測 HTTP 狀態碼時,由相關的 LoaderInfo 物件傳送。
 
init:Event — 會在可存取載入之 SWF 檔的屬性與方法時,由相關的 LoaderInfo 物件傳送。 init 事件一律會在 complete 事件之前就傳送。
 
ioError:IOErrorEvent — 當發生輸入或輸出錯誤而導致載入作業失敗時,由相關的 LoaderInfo 物件傳送。
 
open:Event — 會在載入作業開始時,由相關的 LoaderInfo 物件傳送。
 
progress:ProgressEvent — 會在載入作業進行期間收到資料時,由相關的 LoaderInfo 物件傳送。
 
unload:Event — 會在移除載入的物件時,由相關的 LoaderInfo 物件傳送。

擲回值
SecurityError LoaderContext.securityDomain 的值必須為 nullSecurityDomain.currentDomain。 在此所反映的事實是,您只能將載入的媒體放入其自然的安全執行程序,或是您自己的安全執行程序中 (後者需要原則檔才能進行)。
 
SecurityError — 本機 SWF 檔案只能將 LoaderContext.securityDomain 設為 null。 您不可以將非本機媒體匯入本機安全執行程序,或將其它本機媒體放入其自然安全執行程序以外的安全執行程序中。
 
SecurityError — 如果 context 參數的 applicationDomainsecurityDomain 屬性來自不允許的網域。
 
SecurityError — 如果本機 SWF 檔案嘗試使用 context 參數的 securityDomain 屬性。

請參閱

loadBytes()方法 
public function loadBytes(bytes:ByteArray, context:LoaderContext = null):void

語言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

載入儲存在 ByteArray 物件中的二進位資料。

參數

bytes:ByteArray — ByteArray 物件。 ByteArray 內容可以是 Loader 類別所支援的任何檔案格式: SWF、GIF、JPEG 或 PNG。
 
context:LoaderContext (default = null) — LoaderContext 物件。 只會套用 LoaderContext 物件的 applicationDomain 屬性;不會套用 LoaderContext 物件的 checkPolicyFilesecurityDomain 屬性。


擲回值
ArgumentError — 如果 ByteArray 物件的 length 屬性沒有大於零 (0)。
 
IllegalOperationError — 如果 context 參數的 checkPolicyFilesecurityDomain 屬性為非 null。
 
SecurityError — 如果所提供的 context 屬性的 applicationDomain 屬性來自不允許的網域。

請參閱

unload()方法 
public function unload():void

語言版本 : ActionScript 3.0
Player 版本 : Flash Player 9

移除使用 load() 方法載入 Loader 物件的子系。 與 LoaderInfo 物件關聯的 property 會重設為 null。 由於其它物件不見得會參照此子系,因此不一定會移除此子系;然而,此子系將不再屬於 Loader 物件的子系。

在您取消載入 SWF 子檔案時,最好的方法就是明確地關閉任何位於 SWF 子檔案物件 (例如 LocalConnection、NetConnection、NetStream,與 Sound 物件) 中的串流。 否則,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);

請參閱

範例 如何使用範例
LoaderExample.as

下列範例會使用 LoaderExample 類別,說明不同事件偵聽程式的使用方式。 您可以執行下列步驟來完成這項工作:
  1. 會建立 url 屬性,此屬性為影像檔的位置與名稱。
  2. LoaderExample 建構函式中,建立名為 loader 的新 Loader 物件,然後將它傳送到 configureListeners() 方法,如步驟 3 中所述。
  3. 建構函式會建立新的 URLRequest 物件實體 request,並傳遞 url 以便告知檔案名稱與位置。
  4. request 物件會接著傳遞至 loader 物件的 load() 方法,然後將影像載入顯示清單中。
  5. clickHandler 事件偵聽程式會在載入器上註冊為 click 事件。 按一下滑鼠後,載入的影像便會取消載入。
  6. configureListeners() 方法會使用下列方法加入七個事件偵聽程式:
    • completeHandler() 方法會在影像載入完成後執行。
    • 如果本機未載入影像,而且網路要求已可使用且 Flash Player 可以偵測到網路要求,則會執行 httpStatusHandler() 方法。
    • initHandler() 方法會在 completeHandler() 方法之前以及 progressHandler() 方法之後執行。 一般來說,init 事件在載入 SWF 檔案時比較有用。
    • ioErrorHandler() 方法會在影像檔不可使用或無法存取時執行。
    • openHandler() 方法會在第一次開啟影像檔時執行。
    • progressHandler() 方法會在影像檔開始載入,以及影像載入完成時各執行一次。
    • unLoadHandler() 方法會在使用者按一下影像,要使用 unload() 方法取消載入影像時執行。

請牢記下面的需求:

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();
        }
    }
}




 

有新的意見加入至這個頁面時,傳送電子郵件給我 | 意見報告

目前頁面: http://livedocs.adobe.com/flash/9.0_tw/ActionScriptLangRefV3/flash/display/Loader.html