| 包 | flash.media |
| 类 | public final class StageWebView |
| 继承 | StageWebView EventDispatcher Object |
| 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 2.5 |
在不支持 HTMLLoader 类的设备上,StageWebView 类通过一种简单方式来显示 HTML 内容。该类不提供 ActionScript 和 HTML 内容之间的交互,除非通过 StageWebView 类自身的方法和属性。例如,无法在 ActionScript 和 JavaScript 之间传递值或调用函数。
AIR 配置文件支持:所有桌面操作系统和移动设备均支持此功能,但 AIR for TV 设备不支持此功能。您可以使用 StageWebView.isSupported 属性,测试在运行时上是否支持此功能。有关在多个配置文件之间支持 API 的详细信息,请参阅 AIR 配置文件支持。
在设备上的移动和扩展的移动配置文件中,StageWebView 类使用设备操作系统提供的系统 Web 控件。因此,可用的功能和呈现外观可能因设备而异。
在 Android 中,只有在应用程序描述符中包含 <application android:hardwareAccelerated="true"/>,才支持内联 HTML5 视频。
在桌面计算机上(在桌面和扩展的桌面配置文件中),StageWebView 类使用 Flash Player 插件提供的系统 web 控件。可用的功能和呈现外观与 HTMLLoader 类相同(没有在由 HTMLLoader 实例提供的 ActionScript 和 JavaScript 之间进行紧密集成和脚本桥接)。由于 HTMLLoader 类使用内部 AIR WebKit 引擎,因此强烈建议不要同时使用 StageWebView 和 HTMLLoader 实例,否则会发生未定义的行为,从而可能使应用程序终止运行。
StageWebView 类不是显示对象,无法添加到 Flash 显示列表。相反,您应通过使用 stage 属性将 StageWebView 对象直接附加到舞台来显示该对象。附加到舞台的 StageWebView 实例显示在任何 Flash 显示对象的前面。您使用 viewPort 属性控制呈现区域的大小和位置。无法控制不同 StageWebView 对象的深度顺序。不建议重叠两个实例。
当 StageWebView 对象内的内容处于焦点时,StageWebView 对象首先有机会处理键盘输入。StageWebView 对象所附加到的舞台调度任何未处理的键盘输入。由于 StageWebView 实例不是显示列表的一部分,普通的事件捕获/冒泡循环在此处不适用。
在 Android 3.0+ 中,应用程序必须在 AIR 应用程序描述符的 Android manifestAdditions 元素中启用硬件加速,才能显示 StageWebView 对象中的插件内容。
了解详细信息
相关 API 元素
| 属性 | 由以下参数定义 | ||
|---|---|---|---|
![]() | constructor : Object
对类对象或给定对象实例的构造函数的引用。 | Object | |
| isHistoryBackEnabled : Boolean [只读]
报告在浏览历史记录中是否有上一个页面。 | StageWebView | ||
| isHistoryForwardEnabled : Boolean [只读]
报告在浏览历史记录中是否有下一个页面。 | StageWebView | ||
| isSupported : Boolean [静态] [只读]
报告当前设备是否支持 StageWebView 类。 | StageWebView | ||
| location : String [只读]
当前位置的 URL。 | StageWebView | ||
| mediaPlaybackRequiresUserAction : Boolean
设置用户是否需要执行手势来播放媒体内容。 | StageWebView | ||
| stage : Stage
显示此 StageWebView 对象的舞台。 | StageWebView | ||
| title : String [只读]
HTML 标题值。 | StageWebView | ||
| viewPort : Rectangle
舞台上显示 StageWebView 对象的区域。 | StageWebView | ||
| 方法 | 由以下参数定义 | ||
|---|---|---|---|
创建一个 StageWebView 对象。 | StageWebView | ||
![]() | addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
使用 EventDispatcher 对象注册事件侦听器对象,以使侦听器能够接收事件通知。 | EventDispatcher | |
将焦点赋予此 StageWebView 对象内的内容。 | StageWebView | ||
![]() |
将事件调度到事件流中。 | EventDispatcher | |
此 StageWebView 对象的处理。 | StageWebView | ||
将 StageWebView 的视口绘制到位图。 | StageWebView | ||
![]() |
检查 EventDispatcher 对象是否为特定事件类型注册了任何侦听器。 | EventDispatcher | |
![]() |
表示对象是否已经定义了指定的属性。 | Object | |
在浏览历史记录中导航到上一个页面。 | StageWebView | ||
在浏览历史记录中导航到下一个页面。 | StageWebView | ||
![]() |
表示 Object 类的实例是否在指定为参数的对象的原型链中。 | Object | |
加载并显示指定的 HTML 字符串。 | StageWebView | ||
在指定的 URL 加载页面。 | StageWebView | ||
![]() |
表示指定的属性是否存在、是否可枚举。 | Object | |
重新载入当前页面。 | StageWebView | ||
![]() |
从 EventDispatcher 对象中删除侦听器。 | EventDispatcher | |
![]() |
设置循环操作动态属性的可用性。 | Object | |
暂停当前加载操作。 | StageWebView | ||
![]() |
返回此对象的字符串表示形式,其格式设置遵守区域设置特定的约定。 | Object | |
![]() |
返回指定对象的字符串表示形式。 | Object | |
![]() |
返回指定对象的原始值。 | Object | |
![]() |
检查是否用此 EventDispatcher 对象或其任何祖代为指定事件类型注册了事件侦听器。 | EventDispatcher | |
| 事件 | 摘要 | 由以下参数定义 | ||
|---|---|---|---|---|
![]() | [广播事件] Flash Player 或 AIR 应用程序获得操作系统焦点并变为活动状态时将调度此事件。 | EventDispatcher | ||
| 表示 loadString() 或 loadURL() 方法上次请求的加载操作已完成。 | StageWebView | |||
![]() | [广播事件] Flash Player 或 AIR 应用程序失去操作系统焦点并变为非活动状态时将调度此事件。 | EventDispatcher | ||
| 表示已出错。 | StageWebView | |||
| 当此 StageWebView 对象接收焦点时进行调度。 | StageWebView | |||
| 当 StageWebView 放弃焦点时进行调度。 | StageWebView | |||
| 表示更改了 StageWebView 对象的 location 属性。 | StageWebView | |||
| 表示 StageWebView 对象的 location 属性将更改。 | StageWebView | |||
isHistoryBackEnabled | 属性 |
isHistoryForwardEnabled | 属性 |
isSupported | 属性 |
location | 属性 |
mediaPlaybackRequiresUserAction | 属性 |
stage | 属性 |
title | 属性 |
viewPort | 属性 |
viewPort:Rectangle| 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 2.5 |
舞台上显示 StageWebView 对象的区域。
实现
public function get viewPort():Rectangle public function set viewPort(value:Rectangle):void引发
RangeError — 矩形值无效。
|
StageWebView | () | 构造函数 |
public function StageWebView(useNative:Boolean = false, mediaPlaybackRequiresUserAction:Boolean = true)| 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 2.5 |
创建一个 StageWebView 对象。
在将该对象附加到舞台并设置 viewPort 之前,该对象不可见。
注意:尽管不禁止同一过程既使用嵌入 WebKit,也使用系统 WebKit,但对于某些内容这可能会发生故障;因此,建议对 useNative 使用相同的值来构造给定应用程序中的所有 StageWebView。此外,由于 HTMLLoader 取决于嵌入的 WebKit,因此对于使用 HTMLLoader 的应用程序,构造 StageWebView 时仅应将 useNative 设置为 false。
参数useNative:Boolean (default = false) — 如果 useNative 为 false,则会使用嵌入 AIR 中的一个 WebKit 版本作为创建的 StageWebView 的源。如果 useNative 为 true,则 AIR 将使用系统的默认 web 引擎。移动设备平台仅支持使用系统 web 引擎,因此在移动设备平台上会忽略 useNative。
| |
mediaPlaybackRequiresUserAction:Boolean (default = true) — 默认为 true。当 mediaPlaybackRequiresUserAction 为 true 时,WebView 需要播放用户操作。如果为 false,则会自动播放 WebView 内容。
|
assignFocus | () | 方法 |
dispose | () | 方法 |
public function dispose():void| 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 2.5 |
此 StageWebView 对象的处理。
调用 dispose() 是可选的。如果您不维护对此 StageWebView 实例的引用,它将符合垃圾回收条件。调用 dispose() 会使垃圾回收更快发生,或者在更方便的时间发生。
drawViewPortToBitmapData | () | 方法 |
public function drawViewPortToBitmapData(bitmap:BitmapData):void| 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 2.6 |
将 StageWebView 的视口绘制到位图。
捕获位图并将舞台设置为 null,以便在 StageWebView 对象上显示内容。
注意:对于包含插件内容(例如嵌入的 PDF 和 SWF 文件)的页面,不担保此方法的行为。
参数
bitmap:BitmapData — 对其绘制 StageWebView 视口的可见部分的 BitmapData 对象。
|
引发
ArgumentError — 位图的宽度或高度不同于视口的宽度或高度。
| |
Error — 位图为空。
|
示例 ( 如何使用本示例 )
package
{
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Sprite;
import flash.events.*;
import flash.geom.Rectangle;
import flash.media.StageWebView;
import flash.net.*;
import flash.text.TextField;
public class stagewebview1 extends Sprite
{
public var webView:StageWebView = new StageWebView();
public var textGoogle:TextField=new TextField();
public var textFacebook:TextField=new TextField();
public function stagewebview()
{
textGoogle.htmlText="<b>Google</b>";
textGoogle.x=300;
textGoogle.y=-80;
addChild(textGoogle);
textFacebook.htmlText="<b>Facebook</b>";
textFacebook.x=0;
textFacebook.y=-80;
addChild(textFacebook);
textGoogle.addEventListener(MouseEvent.CLICK,goGoogle);
textFacebook.addEventListener(MouseEvent.CLICK,goFaceBook);
webView.stage = this.stage;
webView.viewPort = new Rectangle(0, 0, stage.stageWidth, stage.stageHeight);
}
public function goGoogle(e:Event):void
{
webView.loadURL("http://www.google.com");
webView.stage = null;
webView.addEventListener(Event.COMPLETE,handleLoad);
}
public function goFaceBook(e:Event):void
{
webView.loadURL("http://www.facebook.com");
webView.stage = null;
webView.addEventListener(Event.COMPLETE,handleLoad);
}
public function handleLoad(e:Event):void
{
var bitmapData:BitmapData = new BitmapData(webView.viewPort.width, webView.viewPort.height);
webView.drawViewPortToBitmapData(bitmapData);
var webViewBitmap:Bitmap=new Bitmap(bitmapData);
addChild(webViewBitmap);
}
}
}
historyBack | () | 方法 |
historyForward | () | 方法 |
loadString | () | 方法 |
public function loadString(text:String, mimeType:String = "text/html"):void| 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 2.5 |
加载并显示指定的 HTML 字符串。
当使用 loadString() 方法时,location 将报告为“about:blank”。在 HTML 字符串内的 URL 中只能使用标准 URI 方案。不允许使用 AIR URI 方案“app:”和“app-storage:”。
HTML 内容无法加载本地资源,例如图像文件。不允许使用 XMLHttpRequests。
仅支持“文本/html”和“应用程序/xhtml+xml”MIME 类型。
参数
text:String — 要显示的 HTML 或 XHTML 内容的字符串。
| |
mimeType:String (default = "text/html") — 内容的 MIME 类型,“文本/html”或“应用程序/xhtml+xml”。
|
示例 ( 如何使用本示例 )
loadString() 方法加载 HTML 页。
var webView:StageWebView = new StageWebView();
webView.stage = this.stage;
webView.viewPort = new Rectangle( 0, 0, stage.stageWidth, stage.stageHeight );
var htmlString:String = "<!DOCTYPE HTML>" +
"<html>" +
"<body>" +
"<h1>Example</h1>" +
"<p>King Phillip cut open five green snakes.</p>" +
"</body>" +
"</html>";
webView.loadString( htmlString, "text/html" );
loadURL | () | 方法 |
public function loadURL(url:String):void| 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 2.5 |
在指定的 URL 加载页面。
URL 可以使用下列 URI 方案:http:、https:、file:、data: 和 JavaScript:。使用 file: 方案加载的内容可以加载其他本地资源。
参数
url:String |
示例 ( 如何使用本示例 )
loadURL() 方法加载一个网站。
注意:在 Android 上,必须在 AIR 应用程序描述符中指定 INTERNET 权限才能加载远程 URL。
var webView:StageWebView = new StageWebView();
webView.stage = this.stage;
webView.viewPort = new Rectangle( 0, 0, stage.stageWidth, stage.stageHeight );
webView.loadURL( "http://www.example.com" );
reload | () | 方法 |
stop | () | 方法 |
complete | 事件 |
flash.events.Event属性 Event.type =
flash.events.Event.COMPLETE| 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 2.5 |
表示 loadString() 或 loadURL() 方法上次请求的加载操作已完成。
Event.COMPLETE 常量定义 complete 事件对象的 type 属性值。
此事件具有以下属性:
| 属性 | 值 |
|---|---|
bubbles | false |
cancelable | false;没有要取消的默认行为。 |
currentTarget | 当前正在使用某个事件侦听器处理 Event 对象的对象。 |
target | 已完成加载的网络对象。 |
error | 事件 |
focusIn | 事件 |
focusOut | 事件 |
locationChange | 事件 |
flash.events.LocationChangeEvent属性 LocationChangeEvent.type =
flash.events.LocationChangeEvent.LOCATION_CHANGE| 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 2.5 |
表示更改了 StageWebView 对象的 location 属性。
此事件无法取消。
在每个位置更改后调度。 locationChanging | 事件 |
flash.events.LocationChangeEvent属性 LocationChangeEvent.type =
flash.events.LocationChangeEvent.LOCATION_CHANGING| 语言版本: | ActionScript 3.0 |
| 运行时版本: | AIR 2.5 |
表示 StageWebView 对象的 location 属性将更改。
仅当通过 StageWebView 对象内部运行的 HTML 内容或代码启动位置更改时(例如用户单击链接时),才调度 locationChanging 事件。默认情况下,新位置在此 StageWebView 对象中显示。您可以调用事件对象的 preventDefault() 方法取消默认行为。例如,您可以使用 flash.net.navigateToURL() 函数在基于事件对象的 location 属性的系统浏览器中打开页面
当使用下列方法更改位置时,不会调度 locationChanging 事件。
historyBack()historyForward()loadString()loadURL()reload()
LOCATION_CHANGING 常量定义在页面位置发生更改之前调度的 LocationChangeEvent 对象的 type 属性的值。
loadURL() 方法加载一个 Web 站点,并使用设备的“后退”和“搜索”软键进行历史记录导航。
package {
import flash.display.MovieClip;
import flash.media.StageWebView;
import flash.geom.Rectangle;
import flash.events.KeyboardEvent;
import flash.ui.Keyboard;
import flash.desktop.NativeApplication;
public class StageWebViewExample extends MovieClip{
private var webView:StageWebView = new StageWebView();
public function StageWebViewExample()
{
webView.stage = this.stage;
webView.viewPort = new Rectangle( 0, 0, stage.stageWidth, stage.stageHeight );
webView.loadURL( "http://www.example.com" );
stage.addEventListener( KeyboardEvent.KEY_DOWN, onKey );
}
private function onKey( event:KeyboardEvent ):void
{
if( event.keyCode == Keyboard.BACK && webView.isHistoryBackEnabled )
{
trace("Back.");
webView.historyBack();
event.preventDefault();
}
if( event.keyCode == Keyboard.SEARCH && webView.isHistoryForwardEnabled )
{
trace("Forward.");
webView.historyForward();
}
}
}
}
Tue Jun 12 2018, 11:04 AM Z
隐藏继承的公共属性
显示继承的公共属性