包 | 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 操作系统)有效,但在另一些平台上 (iOS) 无效的文件对象。当使用 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 应用程序尝试在没有 Internet 连接的情况下加载远程图像。
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, 11:04 AM Z