HTMLの表示
Adobe AIRにはSafari等のブラウザで採用されているWebKitエンジンが実装されており,
HTMLの表示方法はとても簡単です。まずはFlashでの実装方法から見てみましょう。次のサンプルはステージにgihyo.
import flash.html.HTMLControl;
var html:HTMLControl = new HTMLControl();
html.width = stage.stageWidth;
html.height = stage.stageHeight;
html.load(new URLRequest("http://gihyo.jp/"));
addChild(html);
AIR APIでHTMLコンテンツの処理を担当するのはHTMLControlクラス
なお,
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.addEventListener(Event.RESIZE, stageResizeHandler);
function stageResizeHandler(e:Event):void {
html.width = stage.stageWidth;
html.height = stage.stageHeight;
}
続いてFlex Builderでの実装方法です。Flex BuilderにはHTMLコンテンツを表示するためのHTMLコンポーネントがあるので,
<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:HTML x="0" y="0" width="100%" height="100%" location="http://gihyo.jp/"/>
</mx:WindowedApplication>
このようにHTMLコンポーネントを配置して,
Flashでのスクロールバー
Flex BuilderのHTMLコンポーネントにはもともとスクロールバーが付いていますが,
プロパティ | 値 |
---|---|
width:Number | HTMLControlオブジェクトの幅 |
height:Number | HTMLControlオブジェクトの高さ |
htmlWidth:Number | HTMLコンテンツの幅 |
htmlHeight:Number | HTMLコンテンツの高さ |
scrollH:Number | 水平方向のスクロール位置 |
scrollV:Number | 垂直方向のスクロール位置 |
スクロールの最大値は,
var maxScrollH:Number = html.htmlWidth - html.width;
var maxScrollV:Number = html.htmlHeight - html.height;
html.scrollH = maxScrollH;
html.scrollV = maxScrollV;
履歴の移動
ウェブブラウザのようなアプリーケーションを作成する際は,
メソッド/ | 命令/ |
---|---|
historyBack() | 戻る |
historyForward() | 進む |
historyGo() | 指定したステップ数移動する |
getHistoryAt() | 指定した位置のエントリを取得する |
historyLength:uint | 履歴リストの長さ |
historyPosition:uint | 履歴リスト内の現在の位置 |
次のコードは戻る/
prev_btn.addEventListener(MouseEvent.CLICK, prevClickHandler);
next_btn.addEventListener(MouseEvent.CLICK, nextClickHandler);
function prevClickHandler(e:MouseEvent):void {
html.historyBack();
}
function nextClickHandler(e:MouseEvent):void {
html.historyForward();
}
なお,