套件 | flash.media |
類別 | public class CameraRoll |
繼承 | CameraRoll EventDispatcher Object |
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 2 |
AIR 描述檔支援:行動裝置支援此項功能,但桌上型電腦作業系統或 AIR for TV 裝置不支援。如需有關跨多個描述檔之 API 支援的詳細資訊,請參閱 AIR 描述檔支援。
CameraRoll.addBitmapData()
方法會將影像新增至裝置專用的媒體庫。若要在執行階段檢查您的應用程式是否支援 CameraRoll.addBitmapData()
方法,請檢查 CameraRoll.supportsAddBitmapData
屬性。
CameraRoll.browseForImage()
方法會開啟影像選擇對話方塊,讓使用者選擇媒體庫中的影像。當使用者選取影像時,CameraRoll 物件會傳送 select
事件。使用此事件傳送的 MediaEvent 物件,存取選擇的影像。若要在執行階段檢查您的應用程式是否支援 CameraRoll.browseForImage()
方法,請檢查 CameraRoll.supportsBrowseForImage
屬性。
屬性 | 定義自 | ||
---|---|---|---|
constructor : Object
類別物件的參照或是特定物件實體的建構函數。 | Object | ||
permissionStatus : String [靜態] [唯讀]
判斷應用程式是否已獲得存取相機膠捲的權限。 | CameraRoll | ||
supportsAddBitmapData : Boolean [靜態] [唯讀]
是否支援 CameraRoll.addBitmapData() 方法。 | CameraRoll | ||
supportsBrowseForImage : Boolean [靜態] [唯讀]
報告是否支援 CameraRoll.browseForImage() 方法。 | CameraRoll |
方法 | 定義自 | ||
---|---|---|---|
建立 CameraRoll 物件。 | CameraRoll | ||
將影像新增至裝置相機膠捲。 | CameraRoll | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
會在 EventDispatcher 物件註冊事件偵聽程式,以便讓偵聽程式收到事件的通知。 | EventDispatcher | ||
開啟影像瀏覽器對話方塊,讓使用者從裝置相機膠捲選取現有的影像。 | CameraRoll | ||
會將事件傳送到事件流程。 | EventDispatcher | ||
會檢查 EventDispatcher 物件是否有對特定的事件類型註冊偵聽程式。 | EventDispatcher | ||
指出物件是否有已定義的指定屬性。 | Object | ||
指出 Object 類別的實體是否位於指定為參數的物件原型鏈中。 | Object | ||
指出指定的屬性是否存在,以及是否可列舉。 | Object | ||
會從 EventDispatcher 物件移除偵聽程式。 | EventDispatcher | ||
要求權限以存取系統媒體庫或「相機膠捲」。 | CameraRoll | ||
為迴圈作業設定動態屬性的可用性。 | Object | ||
傳回代表此物件的字串,根據地區特定慣例進行格式化。 | Object | ||
會傳回指定之物件的字串形式。 | Object | ||
會傳回指定之物件的基本值。 | Object | ||
檢查此 EventDispatcher 物件是否已註冊事件偵聽程式,或者此物件的任何祖系已為特定事件類型註冊事件偵聽程式。 | EventDispatcher |
事件 | 摘要 | 定義自 | ||
---|---|---|---|---|
[廣播事件] 當 Flash Player 或 AIR 應用程式取得作業系統焦點並成為作用中時傳送。 | EventDispatcher | |||
當使用者取消瀏覽影像操作而未選取影像時傳送。 | CameraRoll | |||
發出訊號,指出 addBitmapData() 操作成功完成。 | CameraRoll | |||
[廣播事件] 當 Flash Player 或 AIR 應用程式失去作業系統焦點並成為非作用中時傳送。 | EventDispatcher | |||
發生錯誤時,會傳送 error 事件。 | CameraRoll | |||
當應用程式要求權限以存取相機膠捲時傳送。 | CameraRoll | |||
當使用者從裝置媒體庫中選取影像時傳送。 | CameraRoll |
permissionStatus | 屬性 |
supportsAddBitmapData | 屬性 |
supportsBrowseForImage | 屬性 |
CameraRoll | () | 建構函式 |
public function CameraRoll()
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 2 |
建立 CameraRoll 物件。
ActionScript 僅支援單一媒體庫。所有的 CameraRoll 物件都會儲存至相同的影像貯存庫。
addBitmapData | () | 方法 |
public function addBitmapData(bitmapData:BitmapData):void
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 2 |
將影像新增至裝置相機膠捲。
若要在執行階段檢查您的應用程式是否支援 CameraRoll.addBitmapData()
方法,請檢查 CameraRoll.supportsAddBitmapData
屬性。
參數
bitmapData:BitmapData — 包含要傳送到「相機膠捲」影像的 BitmapData 物件。
|
擲回值
PermissionError — 應用程式沒有使用攝影機的權限。
|
browseForImage | () | 方法 |
public function browseForImage(value:CameraRollBrowseOptions = null):void
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 2.5 |
開啟影像瀏覽器對話方塊,讓使用者從裝置相機膠捲選取現有的影像。
當使用者選取影像時,此 CameraRoll 實體會傳送包含 MediaEvent 物件的 select
事件。使用 MediaEvent 物件的 data
屬性來載入影像。data
屬性為 MediaPromise 物件,您可以使用 Loader 類別的 loadFilePromise()
方法將它載入。請注意,MediaPromise 物件包含在一些平台 (Blackberry Tablet OS) 上有效的檔案物件,但在其他平台 (iOS 和 Android) 則無作用。當您使用 loadFilePromise()
方法時,所有平台會正確地載入影像。若要透過媒體物件存取原始資料,您可以開啟媒體承諾所提供的資料來源,並使用 IDataInput 介面中的方法讀取資料。
若要在執行階段檢查您的應用程式是否支援 CameraRoll.browseForImage()
方法,請檢查 CameraRoll.supportsBrowseForImage
屬性。
在 iOS (以及僅在 iPad) 上,您可以要求影像瀏覽器對話方塊的特定大小。此外,您也可以指定不會被影像瀏覽器對話方塊覆蓋的螢幕區域。這個要求僅限於 iPad,因為在該裝置上,影像瀏覽器不會佔用整個螢幕。
若要要求影像瀏覽器 (適用於 iPad) 的大小和位置選項,請將 CameraRollBrowseOptions 物件傳遞至 browseForImage()
。如果未加上參數,這個方法便會採用對話方塊尺寸的系統預設值,將對話方塊放置在顯示器的左上角。
參數
value:CameraRollBrowseOptions (default = null ) — CameraRollBrowseOptions 物件,可用來指定顯示影像轉動對話方塊的選項。這個參數是選用的參數。
|
事件
select: — 當使用者選擇影像時傳送。
| |
cancel: — 當使用者取消瀏覽操作時傳送。
| |
error: — 若預設影像瀏覽器應用程式為使用中時傳送。
| |
error: — 若 AIR 應用程式呼叫此函數時正在背景中執行時傳送。
|
擲回值
PermissionError — 應用程式沒有使用攝影機的權限。
|
詳細資訊
相關 API 元素
範例 ( 如何使用本範例 )
package flash.media.examples { import flash.media.CameraRoll; import flash.media.MediaPromise; import flash.media.MediaType; import flash.events.MediaEvent; import flash.events.Event; import flash.display.Loader; import flash.display.Sprite; import flash.events.IOErrorEvent; import flash.display.StageAlign; import flash.display.StageScaleMode; public class CameraRollTest extends Sprite{ private var mediaSource:CameraRoll = new CameraRoll(); public function CameraRollTest() { this.stage.align = StageAlign.TOP_LEFT; this.stage.scaleMode = StageScaleMode.NO_SCALE; if( CameraRoll.supportsBrowseForImage ) { log( "Browsing for image..." ); mediaSource.addEventListener( MediaEvent.SELECT, imageSelected ); mediaSource.addEventListener( Event.CANCEL, browseCanceled ); mediaSource.browseForImage(); } else { log( "Browsing in camera roll is not supported."); } } private var imageLoader:Loader; private function imageSelected( event:MediaEvent ):void { log( "Image selected..." ); var imagePromise:MediaPromise = event.data; imageLoader = new Loader(); if( imagePromise.isAsync ) { log( "Asynchronous media promise." ); imageLoader.contentLoaderInfo.addEventListener( Event.COMPLETE, imageLoaded ); imageLoader.contentLoaderInfo.addEventListener( IOErrorEvent.IO_ERROR, imageLoadFailed ); imageLoader.loadFilePromise( imagePromise ); } else { log( "Synchronous media promise." ); imageLoader.loadFilePromise( imagePromise ); this.addChild( imageLoader ); } } private function browseCanceled( event:Event ):void { log( "Image browse canceled." ); } private function imageLoaded( event:Event ):void { log( "Image loaded asynchronously." ); this.addChild( imageLoader ); } private function imageLoadFailed( event:Event ):void { log( "Image load failed." ); } private function log( text:String ):void { trace( text ); } } }
requestPermission | () | 方法 |
public function requestPermission():void
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 24.0 |
要求權限以存取系統媒體庫或「相機膠捲」。
事件
PermissionStatus: — 由使用者授與/拒絕要求的權限時傳送。
|
cancel | 事件 |
flash.events.Event
屬性 Event.type =
flash.events.Event.CANCEL
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 2.5 |
當使用者取消瀏覽影像操作而未選取影像時傳送。
Event.CANCEL
常數會定義 cancel
事件物件的 type
屬性值。
這個事件具有下列屬性:
屬性 | 值 |
---|---|
bubbles | false |
cancelable | false ;沒有要取消的預設行為指令。 |
currentTarget | 正主動使用事件偵聽程式處理 Event 物件的物件。 |
target | 在其上取消作業之物件的參照。 |
complete | 事件 |
flash.events.Event
屬性 Event.type =
flash.events.Event.COMPLETE
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 2 |
發出訊號,指出 addBitmapData() 操作成功完成。
Event.COMPLETE
常數會定義 complete
事件物件的 type
屬性值。
這個事件具有下列屬性:
屬性 | 值 |
---|---|
bubbles | false |
cancelable | false ;沒有要取消的預設行為指令。 |
currentTarget | 正主動使用事件偵聽程式處理 Event 物件的物件。 |
target | 已完成載入的網路物件。 |
error | 事件 |
flash.events.ErrorEvent
屬性 ErrorEvent.type =
flash.events.ErrorEvent.ERROR
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 2 |
發生錯誤時,會傳送 error
事件。
錯誤的來源包括:
- 無法開啟影像瀏覽器。
- 影像瀏覽器正在使用中。
- AIR 應用程式在背景中執行時,嘗試瀏覽影像。
- 無法將影像新增至媒體庫。
- 呼叫了裝置不支援的方法。
- AIR 應用程式嘗試在沒有網際網路連線的情況下載入遠端影像。
error
事件物件的 type
屬性值。
這個事件具有下列屬性:
屬性 | 值 |
---|---|
bubbles | false |
cancelable | false ;沒有要取消的預設行為指令。 |
currentTarget | 正主動使用事件偵聽程式處理 Event 物件的物件。 |
target | 遇到網路作業失敗的物件。 |
text | 要顯示為錯誤訊息的文字。 |
permissionStatus | 事件 |
flash.events.PermissionEvent
屬性 PermissionEvent.type =
flash.events.PermissionEvent.PERMISSION_STATUS
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 24.0 |
當應用程式要求權限以存取相機膠捲時傳送。檢查 status
屬性的值,以判斷是否已授與或拒絕權限
相關 API 元素
select | 事件 |
flash.events.MediaEvent
屬性 MediaEvent.type =
flash.events.MediaEvent.SELECT
語言版本: | ActionScript 3.0 |
執行階段版本: | AIR 2.5 |
當使用者從裝置媒體庫中選取影像時傳送。
此事件傳送的 MediaEvent 物件可用來存取選擇的媒體。
select
MediaEvent 的常數。
定義 MediaEvent
事件物件的 type
屬性值。這個事件具有下列屬性:
屬性 | 值 |
---|---|
bubbles | false |
cancelable | false ;沒有要取消的預設行為指令。 |
currentTarget | 正主動使用事件偵聽程式處理 Event 物件的物件。 |
data | 可用媒體實體的 MediaPromise 物件。 |
Tue Jun 12 2018, 03:47 PM Z