HTMLLoader オブジェクトの表示プロパティ

Adobe AIR 1.0 およびそれ以降

HTMLLoader オブジェクトは、Adobe® Flash® Player の Sprite クラスの表示プロパティを継承します。例えば、サイズを変更する、移動する、隠す、背景色を変更するなどの操作を行うことができます。それ以外にも、フィルター、マスク、拡大/縮小、回転などの高度なエフェクトを適用できます。エフェクトを適用する場合は、見やすさへの影響を考慮してください。適用するエフェクトによっては、HTML ページに読み込まれる SWF コンテンツおよび PDF コンテンツを表示できなくなります。

HTML ウィンドウには、HTML コンテンツをレンダリングする HTMLLoader オブジェクトが含まれます。このオブジェクトはウィンドウの領域の制約を受けるので、サイズ、位置、回転または拡大/縮小率を変更しても、意図した結果が得られない場合があります。

基本的な表示プロパティ

HTMLLoader の基本的な表示プロパティを使用すると、親表示オブジェクト内でのコントロールの位置指定、サイズの設定、コントロールの表示と非表示の切り替えを行うことができます。HTML ウィンドウの HTMLLoader オブジェクトについては、これらのプロパティを変更しないでください。

基本的な表示プロパティを次に示します。

プロパティ

注記

x y

親コンテナ内でのオブジェクトの位置を指定します。

width height

表示領域のサイズを変更します。

visible

オブジェクトとオブジェクトに含まれるコンテンツを表示するかどうかを指定します。

HTML ウィンドウ外では、HTMLLoader オブジェクトの width プロパティと height プロパティのデフォルト値は 0 です。読み込んだ HTML コンテンツを表示するには、まず width と height を設定する必要があります。HTML コンテンツは、HTMLLoader のサイズで描画され、コンテンツの HTML プロパティと CSS プロパティに従ってレイアウトされます。HTMLLoader のサイズを変更すると、コンテンツが再配置されます。

コンテンツを新しい HTMLLoader オブジェクトに読み込む場合( width は 0 に設定されたまま)、HTMLLoader の表示の width height contentWidth プロパティと contentHeight プロパティで設定することもできます。このテクニックは、HTML と CSS の配置ルールに従ってレイアウトした場合に、最小幅が十分に確保されるページに対しては有効です。ただし、HTMLLoader によって適正な幅が指定されていないと、ページが細長いレイアウトに配置される場合があります。

注意: 他のタイプの表示オブジェクトについても一般的に言えることですが、HTMLLoader オブジェクトの width と height を変更しても、scaleX と scaleY の値は変化しません。

HTMLLoader コンテンツの透明度

HTMLLoader オブジェクトの paintsDefaultBackground プロパティは、HTMLLoader オブジェクトで不透明な背景を描画するかどうかを決定するもので、デフォルトで true になっています。 paintsDefaultBackground false にすると、背景が透明になります。表示オブジェクトコンテナまたは HTMLLoader オブジェクトの下に位置するその他の表示オブジェクトは、HTML コンテンツの前景エレメントの背後に表示されます。

body エレメントまたは HTML ドキュメントのその他のエレメントで背景色を指定(例えば style="background-color:gray" を使用して指定)すると、HTML の該当部分の背景は不透明になり、指定した背景色でレンダリングされます。HTMLLoader オブジェクトの opaqueBackground プロパティを設定し、 paintsDefaultBackground false にした場合は、 opaqueBackground に設定した色が表示されます。

注意: 透明な PNG 形式のグラフィックを使用して、HTML ドキュメント内のエレメントにアルファブレンドの背景を指定できます。HTML エレメントの opacity スタイルの設定はサポートされていません。

HTMLLoader コンテンツの拡大/縮小

HTMLLoader オブジェクトの拡大/縮小では、拡大/縮小率が 1.0 を超えないようにしてください。HTMLLoader コンテンツのテキストは特定の解像度でレンダリングされるので、HTMLLoader オブジェクトを拡大するとピクセルが目立つようになります。ウィンドウのサイズが変更されたときに HTMLLoader とそのコンテンツが拡大/縮小されないようにするには、Stage の scaleMode プロパティを StageScaleMode.NO_SCALE に設定します。

HTML ページに SWF コンテンツまたは PDF コンテンツを読み込む場合の考慮事項

次の場合、HTMLLoader オブジェクトに読み込まれる SWF コンテンツおよび PDF コンテンツは表示されません。

  • HTMLLoader オブジェクトを 1.0 以外の倍率に拡大/縮小した場合。

  • HTMLLoader オブジェクトの alpha プロパティを 1.0 以外の値に設定した場合。

  • HTMLLoader コンテンツを回転した場合。

問題のあるプロパティ設定を削除し、アクティブなフィルターを削除すると、コンテンツが再表示されます。

また、ランタイムでは、透明ウィンドウに PDF コンテンツを表示できません。オブジェクトまたは埋め込みタグの wmode パラメーターが opaque または transparent に設定されている場合、ランタイムでは HTML ページに埋め込まれた SWF コンテンツのみが表示されます。 wmode のデフォルト値は window なので、wmode パラメーターを明示的に設定しない限り、SWF コンテンツは透明ウィンドウに表示されません。

注意: AIR 1.5.2 より前のバージョンでは、どの wmode 値が使用されていようと、HTML に埋め込まれた SWF が表示されることはありません。

HTMLLoader でこれらのタイプのメディアを読み込む方法について詳しくは、 HTML への SWF コンテンツの埋め込み および AIR での PDF コンテンツの追加 を参照してください。

高度な表示プロパティ

HTMLLoader クラスは、特殊エフェクトに使用できるメソッドを複数継承しています。一般に、これらのエフェクトは、HTMLLoader の表示で使用する場合は制限がありますが、トランジションやその他の一時的なエフェクトに役立ちます。例えば、ユーザー入力を収集するダイアログウィンドウを表示する場合に、ユーザーがダイアログを閉じるまでメインウィンドウの表示をぼかすことができます。同様に、ウィンドウを閉じるときに表示をフェードアウトさせることもできます。

高度な表示プロパティを次に示します。

プロパティ

制限

alpha

HTML コンテンツが見えにくくなる場合があります。

filters

HTML ウィンドウでは、外部エフェクトはウィンドウの端でクリップされます。

graphics

graphics コマンドを使用して描画されるシェイプは、デフォルトの背景を含め、HTML コンテンツの下に表示されます。描画されたシェイプが表示されるようにするには、paintsDefaultBackground プロパティを false にする必要があります。

opaqueBackground

デフォルトの背景の色は変更されません。このカラーレイヤーが表示されるようにするには、paintsDefaultBackground プロパティを false にする必要があります。

rotation

矩形の HTMLLoader 領域の角が、ウィンドウの端でクリップされることがあります。HTML コンテンツに読み込まれた SWF コンテンツおよび PDF コンテンツは表示されません。

scaleX scaleY

拡大/縮小率が 1 を超えると、レンダリングされた表示部分のピクセルが目立つようになることがあります。HTML コンテンツに読み込まれた SWF コンテンツおよび PDF コンテンツは表示されません。

transform

HTML コンテンツが見えにくくなる場合があります。HTML 表示がウィンドウの端でクリップされることがあります。回転、拡大/縮小または傾斜を伴う変形の場合、HTML コンテンツに読み込まれた SWF コンテンツおよび PDF コンテンツは表示されません。

次の例では、 filters 配列を設定して HTML 表示全体をぼかす方法を示します。

var html:HTMLLoader = new HTMLLoader(); 
var urlReq:URLRequest = new URLRequest("http://www.adobe.com/"); 
html.load(urlReq); 
html.width = 800; 
html.height = 600; 
 
var blur:BlurFilter = new BlurFilter(8); 
var filters:Array = [blur]; 
html.filters = filters;