FileReference.download()
FileReference.upload()
httpStatus 事件
事件對象類型: flash.events.HTTPStatusEvent
HTTPStatusEvent.type property = flash.events.HTTPStatusEvent.HTTP_STATUS
語言版本 : ActionScript. 3.0
Player 版本 : Flash Player 9
當上載失敗並且存在可用來描述失敗的 HTTP 狀態代碼時調度。 調度 httpStatus 事件之後,將調度 ioError 事件。
僅在上載失敗時才調度 httpStatus 事件。 由於 Flash Player 在文件下載期間依賴瀏覽器的方式,此事件並不適用於下載失敗。 如果下載由於 HTTP 錯誤而失敗,則將錯誤報告為 I/O 錯誤。
定義 httpStatus 事件對象的 type 屬性值。
此事件具有以下屬性:
屬性 值
bubbles false
cancelable false;沒有要取消的默認行為。
currentTarget 當前正在使用某個事件偵聽器處理 Event 對象的對象。
status 由服務器返回的 HTTP 狀態代碼。
target 接收 HTTP 狀態代碼的網絡對象。
另請參見
FileReference.upload()
ioError 事件
事件對象類型: flash.events.IOErrorEvent
IOErrorEvent.type property = flash.events.IOErrorEvent.IO_ERROR
語言版本 : ActionScript. 3.0
Player 版本 : Flash Player 9
當上載或下載失敗時調度。 文件傳輸會失敗的原因有:
當播放器正在讀取、寫入或傳輸文件時發生輸入/輸出錯誤。
SWF 文件嚐試將文件上載到要求身份驗證(如用戶名和密碼)的服務器。 在上載期間,Flash Player 不為用戶提供輸入密碼的方法。 如果 SWF 文件嚐試將文件上載到要求身份驗證的服務器,上載將失敗。
SWF 文件嚐試在獨立播放器或外部播放器中從要求身份驗證的服務器下載文件。 在下載期間,獨立播放器和外部播放器不提供用戶用於輸入密碼的方法。 如果這些播放器中的 SWF 文件嚐試從要求身份驗證的服務器下載文件,則下載會失敗。 隻有在 ActiveX 控件和瀏覽器插件播放器中,文件下載才有可能成功。
傳遞到 upload() 方法中的 url 參數的值包含無效協議。 有效協議包括 HTTP 和 HTTPS。
重要提示:隻有在瀏覽器中運行的 Flash 應用程序(即,使用瀏覽器插件或 ActiveX 控件的應用程序)才可以提供對話框來提示用戶輸入用戶名和密碼以進行身份驗證,並且隻適用於下載。 對於使用插件或 ActiveX 控件進行的上載操作,以及使用獨立播放器或外部播放器進行的上載或下載操作,文件傳輸會失敗。
定義 ioError 事件對象的 type 屬性值。
此事件具有以下屬性:
屬性 值
bubbles false
cancelable false;沒有要取消的默認行為。
currentTarget 當前正在使用某個事件偵聽器處理 Event 對象的對象。
target 發生輸入/輸出錯誤的網絡對象。
text 要顯示為錯誤消息的文本。
另請參見
FileReference.download()
FileReference.upload()
open 事件
事件對象類型: flash.events.Event
Event.type property = flash.events.Event.OPEN
語言版本 : ActionScript. 3.0
Player 版本 : Flash Player 9
當上載或下載操作開始時調度。
定義 open 事件對象的 type 屬性值。
此事件具有以下屬性:
屬性 值
bubbles false
cancelable false;沒有要取消的默認行為。
currentTarget 當前正在使用某個事件偵聽器處理 Event 對象的對象。
target 已打開連接的網絡對象。
示例
下麵的示例演示 download 事件對象的用法。 要運行此示例,請將 downloadURL.url 屬性更改為指向一個實際的域和文件,而不是虛擬的 .com/SomeFile.pdf]http://www.[yourDomain].com/SomeFile.pdf
package {
import flash.display.Sprite;
import flash.events.*;
import flash.net.FileReference;
import flash.net.URLRequest;
import flash.net.FileFilter;
public class FileReference_download extends Sprite {
* var downloadURL:URLRequest;
* var fileName:String = “SomeFile.pdf“;
* var file:FileReference;
public function FileReference_download() {
downloadURL = new URLRequest();
downloadURL.url = “http://www.[yourDomain].com/SomeFile.pdf“;
file = new FileReference();
configureListeners(file);
file.download(downloadURL, fileName);
}
* function configureListeners(dispatcher:IEventDispatcher):void {
dispatcher.addEventListener(Event.CANCEL, cancelHandler);
dispatcher.addEventListener(Event.COMPLETE, completeHandler);
dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
dispatcher.addEventListener(Event.OPEN, openHandler);
dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
dispatcher.addEventListener(Event.SELECT, selectHandler);
}
* function cancelHandler(event:Event):void {
trace(“cancelHandler: “ + event);
}
* function completeHandler(event:Event):void {
trace(“completeHandler: “ + event);
}
* function ioErrorHandler(event:IOErrorEvent):void {
trace(“ioErrorHandler: “ + event);
}
* function openHandler(event:Event):void {
trace(“openHandler: “ + event);
}
* function progressHandler(event:ProgressEvent):void {
var file:FileReference = FileReference(event.target);
trace(“progressHandler name=“ + file.name + “ bytesLoaded=“ + event.bytesLoaded + “ bytesTotal=“ + event.bytesTotal);
}
* function securityErrorHandler(event:SecurityErrorEvent):void {
trace(“securityErrorHandler: “ + event);
}
* function selectHandler(event:Event):void {
var file:FileReference = FileReference(event.target);
trace(“selectHandler: name=“ + file.name + “ URL=“ + downloadURL.url);
}
}
}
另請參見
FileReference.download()
FileReference.upload()
progress 事件
事件對象類型: flash.events.ProgressEvent
ProgressEvent.type property = flash.events.ProgressEvent.PROGRESS
語言版本 : ActionScript. 3.0
Player 版本 : Flash Player 9
在文件上載或下載操作期間定期調度。 progress 事件在 Flash Player 將字節傳輸到服務器時調度,即使傳輸最終沒有成功,也會在傳輸期間定期調度。 要確定文件傳輸是否真正成功和完成以及何時真正成功和完成,需要偵聽 complete 事件。
在某些情況下,接收不到 progress 事件。 例如,當所傳輸的文件非常小或者上載或下載速度非常快時,可能就不會調度 progress 事件。
在低於 OS X 10.3 版本的 Macintosh 平台上不能確定文件上載進度。progress 事件在上載操作期間調用,但 progress 事件的 bytesLoaded 屬性值為 -1,表示不能確定進度。
定義 progress 事件對象的 type 屬性值。
此事件具有以下屬性:
屬性 值
bubbles false
bytesLoaded 在偵聽器處理事件時加載的項數或字節數。
bytesTotal 如果加載進程成功,最終將加載的項目或字節總數。
cancelable false;沒有要取消的默認行為。
currentTarget 當前正在使用某個事件偵聽器處理 Event 對象的對象。
target 報告進度的網絡對象。
示例
下麵的示例演示 progress 事件的用法。 要運行此示例,請將 downloadURL.url 屬性更改為指向一個實際的域和文件,而不是虛擬的 .com/SomeFile.pdf]http://www.[yourDomain].com/SomeFile.pdf
package {
import flash.display.Sprite;
import flash.events.*;
import flash.net.FileReference;
import flash.net.URLRequest;
public class FileReference_event_progress extends Sprite {
* var downloadURL:URLRequest;
* var fileName:String = “SomeFile.pdf“;
* var file:FileReference;
public function FileReference_event_progress() {
downloadURL = new URLRequest();
downloadURL.url = “http://www.[yourDomain].com/SomeFile.pdf“;
file = new FileReference();
file.addEventListener(ProgressEvent.PROGRESS, progressHandler);
file.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
file.addEventListener(Event.COMPLETE, completeHandler);
file.download(downloadURL, fileName);
}
* function progressHandler(event:ProgressEvent):void {
var file:FileReference = FileReference(event.target);
trace(“progressHandler: name=“ + file.name + “ bytesLoaded=“ + event.bytesLoaded + “ bytesTotal=“ + event.bytesTotal);
}
* function ioErrorHandler(event:IOErrorEvent):void {
trace(“ioErrorHandler: “ + event);
}
* function completeHandler(event:Event):void {
trace(“completeHandler: “ + event);
}
}
}
另請參見
FileReference.complete
flash.events.ProgressEvent
FileReference.download()
FileReference.upload()
securityError 事件
事件對象類型: flash.events.SecurityErrorEvent
SecurityErrorEvent.type property = flash.events.SecurityErrorEvent.SECURITY_ERROR
語言版本 : ActionScript. 3.0
Player 版本 : Flash Player 9
當對 FileReference.upload() 或 FileReference.download() 方法的調用嚐試將文件上載到服務器,或是從調用方安全沙箱外部的服務器上下載文件時進行調度。 用於描述發生的特定錯誤的文本屬性的值通常為 “securitySandboxError“。 執行調用的 SWF 可能已經嚐試訪問其域外部的 SWF 文件,但卻無權這樣做。 您可以通過使用跨域策略文件來嚐試糾正此錯誤。
SecurityErrorEvent.SECURITY_ERROR 常量定義 securityError 事件對象的 type 屬性值。
此事件具有以下屬性:
屬性 值
bubbles false
cancelable false;沒有要取消的默認行為。
currentTarget 當前正在使用某個事件偵聽器處理 Event 對象的對象。
target 報告安全錯誤的網絡對象。
text 要顯示為錯誤消息的文本。
另請參見
FileReference.download()
FileReference.upload()
Flash Player 安全性
select 事件
事件對象類型: flash.events.Event
Event.type property = flash.events.Event.SELECT
語言版本 : ActionScript. 3.0
Player 版本 : Flash Player 9
當用戶從文件瀏覽對話框選擇要上載或下載的文件時調度。 (調用 FileReference.browse()、FileReferenceList.browse() 或 FileReference.download() 方法時將打開此對話框。) 當用戶選擇文件並確認操作(例如,通過單擊“確定”)時,會填充 FileReference 對象的屬性。
select 事件的運行方式會稍有不同,具體取決於調用它的方法。 在調用 browse() 後調度 select 事件時,Flash Player 能夠讀取 FileReference 對象的所有屬性,因為用戶所選的文件位於本地文件係統上。 在調用 download() 後調度 select 時,Flash Player 隻能讀取 name 屬性,因為在調度 select 時,文件尚未下載到本地文件係統。 如果已下載了文件,則調度 complete 時,Flash Player 將可以讀取 FileReference 對象的所有其它屬性。
定義 select 事件對象的 type 屬性值。
此事件具有以下屬性:
屬性 值
bubbles false
cancelable false;沒有要取消的默認行為。
currentTarget 當前正在使用某個事件偵聽器處理 Event 對象的對象。
target FileReference 對象,已在其中選定了一個項目。
示例
下麵的示例演示 select 事件對象的用法。 要運行此示例,請將 uploadURL.url 屬性更改為指向一個實際的域和文件,而不是虛擬的 .com/SomeFile.pdf]http://www.[yourDomain].com/SomeFile.pdf
package {
import flash.display.Sprite;
import flash.events.*;
import flash.net.FileReference;
import flash.net.URLRequest;
public class FileReference_event_select extends Sprite {
* var uploadURL:URLRequest;
* var file:FileReference;
public function FileReference_event_select() {
uploadURL = new URLRequest();
uploadURL.url = “http://www.[yourDomain].com/yourUploadHandlerScript.cfm“;
file = new FileReference();
file.addEventListener(Event.SELECT, selectHandler);
file.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
file.addEventListener(ProgressEvent.PROGRESS, progressHandler);
file.addEventListener(Event.COMPLETE, completeHandler);
file.browse();
}
* function selectHandler(event:Event):void {
var file:FileReference = FileReference(event.target);
trace(“selectHandler: name=“ + file.name + “ URL=“ + uploadURL.url);
file.upload(uploadURL);
}
* function ioErrorHandler(event:IOErrorEvent):void {
trace(“ioErrorHandler: “ + event);
}
* function progressHandler(event:ProgressEvent):void {
var file:FileReference = FileReference(event.target);
trace(“progressHandler: name=“ + file.name + “ bytesLoaded=“ + event.bytesLoaded + “ bytesTotal=“ + event.bytesTotal);
}
* function completeHandler(event:Event):void {
trace(“completeHandler: “ + event);
}
}
}
uploadCompleteData 事件
事件對象類型: flash.events.DataEvent
DataEvent.type property = flash.events.DataEvent.UPLOAD_COMPLETE_DATA
語言版本 : ActionScript. 3.0
Player 版本 : Flash Player 9.0.28.0
成功上載然後從服務器接收數據之後調度。 如果未從服務器返回數據,則不調度此事件。
定義 uploadCompleteData 事件對象的 type 屬性值。
此事件具有以下屬性:
屬性 值
bubbles false
cancelable false;沒有要取消的默認行為。
currentTarget 當前正在使用某個事件偵聽器處理 Event 對象的對象。
data 成功上載文件後從服務器返回的原始數據。
target 成功上載後接收數據的 FileReference 對象。
示例
下例顯示在運行時加載的文件的數據格式和狀態信息。
注意:若要運行此示例,請更改 uploadURL.url 屬性以指向實際的 URL,而不是示例中虛擬的地址。 URL 應指向名為 yourUploadHandlerScript.cfm 的文件,該文件位於指定 URL 的根 Web 目錄下。 根據您的配置,您可能還需要編譯 SWF 文件,將“本地回放安全性”設置為“隻訪問網絡”,或更新 Flash Player 的安全設置,以允許此文件網絡訪問。
package {
import flash.display.Sprite;
import flash.events.*;
import flash.net.FileFilter;
import flash.net.FileReference;
import flash.net.URLRequest;
public class FileReferenceExample extends Sprite {
* var uploadURL:URLRequest;
* var file:FileReference;
public function FileReferenceExample() {
uploadURL = new URLRequest();
uploadURL.url = “http://www.[yourDomain].com/yourUploadHandlerScript.cfm“;
file = new FileReference();
configureListeners(file);
file.browse(getTypes());
}
* function configureListeners(dispatcher:IEventDispatcher):void {
dispatcher.addEventListener(Event.CANCEL, cancelHandler);
dispatcher.addEventListener(Event.COMPLETE, completeHandler);
dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
dispatcher.addEventListener(Event.OPEN, openHandler);
dispatcher.addEventListener(ProgressEvent.PROGRESS, progressHandler);
dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
dispatcher.addEventListener(Event.SELECT, selectHandler);
dispatcher.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA,uploadCompleteDataHandler);
}
* function getTypes():Array {
var allTypes:Array = new Array(getImageTypeFilter(), getTextTypeFilter());
return allTypes;
}
* function getImageTypeFilter():FileFilter {
return new FileFilter(“Images (*.jpg, *.jpeg, *.gif, *.png)“, “*.jpg;*.jpeg;*.gif;*.png“);
}
* function getTextTypeFilter():FileFilter {
return new FileFilter(“Text Files (*.txt, *.rtf)“, “*.txt;*.rtf“);
}
* function cancelHandler(event:Event):void {
trace(“cancelHandler: “ + event);
}
* function completeHandler(event:Event):void {
trace(“completeHandler: “ + event);
}
* function uploadCompleteDataHandler(event:Event):void {
trace(“uploadCompleteData: “ + event);
}
* function httpStatusHandler(event:HTTPStatusEvent):void {
trace(“httpStatusHandler: “ + event);
}
* function ioErrorHandler(event:IOErrorEvent):void {
trace(“ioErrorHandler: “ + event);
}
* function openHandler(event:Event):void {
trace(“openHandler: “ + event);
}
* function progressHandler(event:ProgressEvent):void {
var file:FileReference = FileReference(event.target);
trace(“progressHandler name=“ + file.name + “ bytesLoaded=“ + event.bytesLoaded + “ bytesTotal=“ + event.bytesTotal);
}
* function securityErrorHandler(event:SecurityErrorEvent):void {
trace(“securityErrorHandler: “ + event);
}
* function selectHandler(event:Event):void {
var file:FileReference = FileReference(event.target);
trace(“selectHandler: name=“ + file.name + “ URL=“ + uploadURL.url);
file.upload(uploadURL);
}
}
}
本文版权:http://www.ndfweb.cn/news-422.html