▼ActionScript 3.0メモ▼
DOM操作とJavaScriptからのイベント処理


DOM操作とJavaScriptからのイベント処理を行うプログラムを作成する。


リソース
アプリと同じフォルダにtest.htmlを配置。
test.html
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <script type="text/javascript">
        //変数の例
        var num=100;
        
        //関数の例
        function test() {
            return "OK.";
        }                        
    </script>
</head>
<body>
    <p id="divInfo">情報</p><br>
    <a href="#" id="aLink">テストリンク</a>
</body>
</html>


ソースコード
DOMControlEx.as
package {
    import flash.display.*;
    import flash.events.*;
    import flash.net.*;
    import flash.html.*;

    //HTMLの表示とDOMの操作
    [SWF(width=240, height=240, backgroundColor=0xFFFFFF)]    
    public class DOMControlEx extends Sprite {
        private var htmlControl:HTMLLoader;//HTMLコントロール
        
        //コンストラクタ
        public function DOMControlEx() {
            //HTMLコントロールの生成
            htmlControl        = new HTMLLoader();
            htmlControl.width  = stage.stageWidth;
            htmlControl.height = stage.stageHeight;    
            htmlControl.addEventListener(Event.COMPLETE, onComplete);
            addChild(htmlControl);
            
            //アプリと同じフォルダにあるtest.htmlの読み込み
            htmlControl.load(new URLRequest("app:/test.html"));            
        }
        
        //HTML読み込み完了イベントの処理
        private function onComplete(e:Event):void {
            var result:String = "DOMConsoleEx<br><br>";    

            //DOMの変数「num」にアクセス
            result += "num:" + htmlControl.window.num + "<br>";
            
            //DOMの関数「test」にアクセス
            result += "text():" + htmlControl.window.test() + "<br>";    

            //DOMの要素を操作           
            htmlControl.window.document.
                getElementById("divInfo").innerHTML = result;
            
            //JavaScriptイベントの関連付け
            htmlControl.window.document.
                getElementById("aLink").onclick = onClick;
        }        
        
        //リンククリックイベントの処理
        private function onClick(a:int):void {
            htmlControl.window.document.
                getElementById("divInfo").innerHTML += "テストリンクをクリック<br>";
        }
    }
}




−戻る−