StageWebView AIR 移动…

来源:互联网 发布:linux socket 编辑:程序博客网 时间:2024/06/15 09:03

StageWebView AIR 移动应用 浏览html

 

 

 最学搞AIR手机应用,想做浏览html的功能,找了些资料,觉得StageWebView的实现方法比较好用,所以收藏一下.

 

语言版本:ActionScript 3.0运行时版本:AIR 2.5

StageWebView 类在舞台视口中显示 HTML 内容。

在不支持 HTMLLoader 类的设备上,StageWebView 类通过一种简单方式来显示 HTML 内容。该类不提供ActionScript 和 HTML 内容之间的交互,除非通过 StageWebView 类自身的方法和属性。例如,无法在ActionScript 和 JavaScript 之间传递值或调用函数。

 

 

在设备上的移动和扩展的移动配置文件中,StageWebView 类使用设备操作系统提供的系统 Web控件。因此,可用的属性和呈现外观可能因设备而异。在桌面计算机上(在桌面和扩展的桌面配置文件中),StageWebView 类使用内部AIR WebKit 引擎。可用的功能和呈现外观与 HTMLLoader 类相同(没有由 HTMLLoader 实例提供的ActionScript 和 JavaScript 之间的紧密集成和脚本桥接)。测试 StageWebView 类的isSupported 属性以确定当前设备是否支持该类。

StageWebView 类不是显示对象,无法添加到 Flash 显示列表。相反,您应通过使用stage 属性将 StageWebView 对象直接附加到舞台来显示该对象。附加到舞台的StageWebView 实例显示在任何 Flash 显示对象的前面。您使用 viewPort属性控制呈现区域的大小和位置。无法控制不同 StageWebView 对象的深度顺序。不建议重叠两个实例。

当 StageWebView 对象内的内容处于焦点时,StageWebView对象首先有机会处理键盘输入。StageWebView 对象所附加到的舞台调度任何未处理的键盘输入。由于 StageWebView实例不是显示列表的一部分,普通的事件捕获/冒泡循环在此处不适用。

在 Android 3.0+ 中,应用程序必须在 AIR 应用程序描述符的 Android manifestAdditions元素中启用硬件加速,才能显示 StageWebView 对象中的插件内容。

 

主要事件:

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 属性的值。

 

 

 

例子:

 

在对应要显示的地方用StageWebView就可以了,如我要在已个Group里显示浏览html,可以如下:

 

var mainGoodsInfoHtml_Group:Group = new Group();

var webView:StageWebView = new StageWebView();
    webView.stage= mainGoodsInfoHtml_Group.stage;
    webView.viewPort= new Rectangle( 0, 0, mainGoodsInfoHtml_Group.stage.stageWidth,mainGoodsInfoHtml_Group.stage.stageHeight );
    webView.loadURL("http://www.tmall.com/");

 

 

 

 

管理浏览历史


开始浏览网页后,已经访问过的页面都保存在浏览历史里。调用historyBack()方法,移动到保存在浏览历史里的上一个浏览的网页,如果存在的话。例如,使用管理按钮的鼠标事件监听,调用下面的函数。如果存在上一个浏览的页面,isHistoryBackEnabled属性的值是true。

public function moveBack(event:MouseEvent):void
{
if(webView.isHistoryBackEnabled)
{
webView.historyBack();
}
else
{
trace("No pages in the browsing history.")
}
}

类似的,historyForward方法导航到浏览历史里的下一页。如果浏览历史里存在下一页,webView.isHistoryForwardEnabled属性值为true。

public function moveForward(event:MouseEvent):void
{
if(webView.isHistoryForwardEnabled)
{
webView.historyBack();
}
else
{
trace("No pages in the browsing history.")
}
}

处理StageWebView事件


当使用StageWebView对象时,会想要知道什么时候完成加载新URL。监听locationChange事件,当URL改变时做一些事情。下面的代码给StageWebView对象添加事件监听。当URL加载完成,监听器捕捉到StageWebView派发的LocationChangeEvent.LOCATION_CHANGE事件。

webView.addEventListener(LocationChangeEvent.LOCATION_CHANGE,getUpdate);
public function getUpdate(event:LocationChangeEvent):void
{
trace("The location changed.");
}

事件LocationChangeEvent.LOCATION_CHANGING,意味着StageWebView定位要发生变化。调用事件派发者的preventDefault()方法来避免默认行为。
在下面的代码,当StageWebView定位正要改变时,派发LocationChangeEvent.LOCATION_CHANGING事件,并避免加载新URL。

webView.addEventListener(LocationChangeEvent.LOCATION_CHANGING,getUpdate);
public function getUpdate(event LocationChangeEvent):void
{
event.preventDefault();
trace("The new URL is blocked.");
}

0 0
原创粉丝点击