ActionScript からの HTML スタイルシートの操作

Adobe AIR 1.0 およびそれ以降

HTMLLoader オブジェクトが complete イベントを送出すると、ページ内の CSS スタイルを調べたり操作したりできます。

例えば、次の簡単な HTML ドキュメントを考えます。

<html> 
<style> 
    .style1A { font-family:Arial; font-size:12px } 
    .style1B { font-family:Arial; font-size:24px } 
</style> 
<style> 
    .style2 { font-family:Arial; font-size:12px } 
</style> 
<body> 
    <p class="style1A"> 
        Style 1A 
    </p> 
    <p class="style1B"> 
        Style 1B 
    </p> 
    <p class="style2"> 
        Style 2 
    </p> 
</body> 
</html>

HTMLLoader オブジェクトによってこのコンテンツが読み込まれると、次に示すように window.document.styleSheets 配列の cssRules 配列を通じてページ内の CSS スタイルを操作できます。

var html:HTMLLoader = new HTMLLoader( ); 
var urlReq:URLRequest = new URLRequest("test.html"); 
html.load(urlReq); 
html.addEventListener(Event.COMPLETE, completeHandler); 
function completeHandler(event:Event):void { 
    var styleSheet0:Object = html.window.document.styleSheets[0]; 
    styleSheet0.cssRules[0].style.fontSize = "32px"; 
    styleSheet0.cssRules[1].style.color = "#FF0000"; 
    var styleSheet1:Object = html.window.document.styleSheets[1]; 
    styleSheet1.cssRules[0].style.color = "blue"; 
    styleSheet1.cssRules[0].style.font-family = "Monaco"; 
}

このコードで SCC スタイルが調整された結果の HTML ドキュメントは次のように表示されます。

コードでページにスタイルを追加できるのは、HTMLLoader オブジェクトが complete イベントを送出した後であることに注意してください。