関連ページ  
HTML コントロールで 簡易ブラウザ :【AIR Flex】


ブラウザでダウンロード

メインウインドウのコードと PDF の2次ウインドウのコードは
AIR のウインドウ (5) -- 2次ウインドウでHTMLコントロール


2) SWF


4) Google MAP



HTML -- 簡易ブラウザ
ブラウザとして利用するにはさすがにいろいろ問題があります。
まず、リンクが新しいウインドウを開くようになっていると動作しません。
デフォルトの target="_self" である必要があります。

また、何をもって複雑かは断定して言えませんが、
感覚的に複雑なページは表示できない場合があります。

さらに、初期ページが変更されてから、2次ウインドウを x ボタンで
閉じようとすると、HTMLLoader の focusOut でエラーになります。
これはバグと思われますが、タイトルの「閉じるボタン」を使用せずに
ウインドウ内にボタンを置いて close すると発生しません。
closing イベント内からいろいろやってみましたが、どうやっても
タイトルのボタンからはエラーになります

その為、このサンプルでは、タイトルの「閉じるボタン」が押された
場合は、closing でデフォルトの処理をキャンセルして、非表示に
するようにしています。その為、メインウインドウでもそれを考慮
しています。

※ 後、ここではタイトルのスキンを変更しています
HtmlWindow.mxml
<?xml version="1.0" encoding="utf-8"?>
<mx:Window
	xmlns:mx="http://www.adobe.com/2006/mxml"
	horizontalAlign="center"
	verticalAlign="middle"
	type="normal"
	systemChrome="none"
	transparent="false"
	showFlexChrome="true"
	alwaysInFront="false"

	initialize="initData();"
	creationComplete="initApp1()"
	applicationActivate="initApp2()"
	closing="endWindow(event)"
	resize="webResize(event)"

	width="750"
	height="550"

	title="  ブラウザ"
	styleName="myTitle"
>

<mx:Style>
.myTitle {
	titleBarBackgroundSkin: Embed("gold.png");
}
</mx:Style>

<mx:Script>
<![CDATA[

	import mx.core.*;
	import mx.events.*;

	// *********************************************************
	// endWindow
	// *********************************************************
	private function endWindow(e:flash.events.Event):void {

		trace("[App:closing]");

		// 閉じて終了せずに、非表示にする
		e.preventDefault();
		// minimize しておくと、復帰する時にアクティブにできるので
		this.minimize();
		// 先に minimize しないと、消えない。
		// 最小化のアニメーションを無くして消したい場合は、
		// どうしてもタイマーが必要なので
		this.visible = false;

	}

	// *****************************************************
	// HTML コントロール のサイズコントロール
	// *****************************************************
	private function webResize(e:mx.events.ResizeEvent):void {

		try {
			web.width = this.width-2;
			web.height = this.height-45-10-url.height;
		}
		catch (error:Error) {
		}

	}

	// *****************************************************
	// 初期処理
	// *****************************************************
	private function initData():void {

		web.location = "http://www.google.co.jp"
		url.text = web.location;

	}

	// *********************************************************
	// creationComplete
	// *********************************************************
	private function initApp1():void {

		trace("[App:afterDisplay]");
//		web.htmlLoader.navigateInSystemBrowser = true;

	}

	// *********************************************************
	// applicationActivate
	// *********************************************************
	private function initApp2():void {

		trace("[App:start]");

	}

]]>
</mx:Script>

<mx:TextInput
	id="url"
	width="95%" 
	fontSize="10" 
/>
<mx:HTML
	id="web"
	width="750"
	height="550"
	location="{url.text}"
/>

</mx:Window>