10 October 2011
熟悉 ActionScript 3.
中级
Adobe AIR里的类StageWebView 是用来在移动Adobe AIR应用上显示HTML内容的。它使用移动手机操作系统提供的系统web控件。因此,不同手机的可用特性和外观渲染可能不一样。在ActionScript 与HTML内容之间,StageWebView只提供了有限的互动。
通过本篇,将学到:
StageWebView对象StageWebView 事件使用下面的代码来创建一个StageWebView对象。这段代码创建了StageWebView类的一个实例并用stage属性将其添加到场景中。注意StageWebView并不是一个可以添加到显示列表的显示对象。你可以通过viewPort方法来调整StageWebView中显示HTML内容的矩形区域大小。
public var webView:StageWebView = new StageWebView();
webView.stage = this.stage;
webView.viewPort = new Rectangle( 0, 0, stage.stageWidth, stage.stageHeight);
假设你通过点击按钮来将网页(比如:http://www.Google.com)显示在StageWebView对象中。你可以在StageWebView外部添加一个按钮,并且加上监听器,然后调用一个函数来设置地址。比如,下面这个函数在执行时会将Google页面加载到StageWebView中。loadURL()方法是用于在WebView类中加载URL。
public function goGoogle(event:MouseEvent):void
{
webView.loadURL("http://www.google.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对象时,你可能会想知道新的URL什么时候加载的。监听locationChange事件来响应URL的改变。下面的代码给StageWebView对象添加了一个事件监听。当新的URL加载时,事件监听器会发送一个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.");
}
在本文中,你学习了StageWebView及其相关事件,想要获得更多信息可以参考一下资源: