<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" initialize="init()"  width="900" height="700" viewSourceURL="srcview/index.html">
    <mx:Panel x="0" y="0" width="100%" height="100%" layout="absolute" id="myPanel">
        <mx:TabNavigator x="0" y="70" width="100%" height="90%" id="myTvn" backgroundColor="#a6e6f4">
            <mx:Canvas label="タブ" width="100%" height="100%" id="myCvs">
                <mx:HTML x="10" y="49" width="95%" height="100%" name="html" id="myHtml" location="http://www.google.com" complete="change(event)"/>
            </mx:Canvas>
        </mx:TabNavigator>
        <mx:Button x="0" y="10" label="Tab追加" click="makeTab()"/>
        <mx:Button x="76" y="10" label="Tab削除" click="deleteTab()"/>
        <mx:TextInput x="111" y="40" width="400" enter="urlInputEnter()" id="urlInput"/>
        <mx:Button x="519" y="40" label="Go" click="urlInputEnter()"/>
        <mx:Button x="0" y="40" label="進む" click="forward()"/>
        <mx:Button x="56" y="40" label="戻る" click="back()"/>
    </mx:Panel>
    <mx:Script>
        <![CDATA[
            import mx.events.ResizeEvent;
            import mx.containers.Canvas;
            import mx.containers.TabNavigator;
            import flash.html.*;
            
            private function init():void{
                this.addEventListener(ResizeEvent.RESIZE, resize);  //リサイズイベントを追加
            }
            
            //URLが変わったときタブのLabelも変える
            private function change(event:Event):void{
                var html:HTML = event.target as HTML;
                var cnv:Canvas = html.parent as Canvas;
                
                if(html.historyLength >= 1)
                    cnv.label = html.getHistoryAt(html.historyPosition).title;  //現在参照しているサイトのタイトルを代入
            }
            
            //指定されたURLに飛ぶ
            private function urlInputEnter():void{
                var html:HTML = (myTvn.selectedChild as Canvas).getChildByName("html") as HTML;
                html.location = urlInput.text;
                html.reload();
            }
            
            //タブの追加
            private function makeTab():void{
                var cvs:Canvas = new Canvas();  //まずはCanvasを作成
                cvs.label = "タブ";
                cvs.name = "tab";
                cvs.width = myCvs.width;
                cvs.height = myCvs.height;
                var html:HTML = new HTML();  //次にHTML
                html.name = "html";
                html.x = myHtml.x;
                html.y = myHtml.y;
                html.width = myHtml.width;
                html.height = myHtml.height;
                html.location="http://www.google.com";
                html.addEventListener(Event.COMPLETE, change);  //ページの表示が完了したときにchangeを呼び出すように設定
                cvs.addChild(html);  //CanvasにHTMLをaddChild
                myTvn.addChild(cvs); //そしてCanvasをタブに追加
            }
            
            //タブの削除
            private function deleteTab():void{
                myTvn.removeChildAt(myTvn.selectedIndex);  //選択中のタブを削除
            }
            
            //進む
            private function forward():void{
                //現在選択されているタブのHTMLのhistoryForwardを実行。
                ((myTvn.selectedChild as Canvas).getChildByName("html") as HTML).historyForward();
            }
            
            //戻る
            private function back():void{
                ((myTvn.selectedChild as Canvas).getChildByName("html") as HTML).historyBack();
            }
            
            //サイズ変更
            private function resize(event:ResizeEvent):void{
                for each(var cvs:Canvas in myTvn.getChildren()){
                    if(cvs.id != "myCvs"){
                        cvs.width = stage.width;
                        cvs.height = stage.height;
                        cvs.getChildByName("html").width = stage.width - 50;
                        cvs.getChildByName("html").height = stage.height - 300;
                    }
                }
            }
        ]]>
    </mx:Script>
    
</mx:WindowedApplication>
inserted by FC2 system