| 包 | 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
隐藏继承的公共属性
显示继承的公共属性