パッケージflash.text
クラスpublic dynamic class StyleSheet
継承StyleSheet Inheritance EventDispatcher Inheritance Object

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

StyleSheet クラスを使用すると、フォントのサイズや色、その他のスタイルなどのテキストフォーマット規則を含む StyleSheet オブジェクトを作成することができます。スタイルシートによって定義したスタイルは、HTML 形式または XML 形式のテキストを含む TextField オブジェクトに適用することができます。TextField オブジェクトに含まれるテキストは、StyleSheet オブジェクトによって定義されるタグスタイルに従って、自動的にフォーマットされます。テキストスタイルを使用して、新しいフォーマットタグの定義、ビルトイン HTML タグの再定義、特定の HTML タグに適用できるスタイルクラスの作成を行うことができます。

スタイルを TextField オブジェクトに適用するには、 オブジェクトを TextField オブジェクトの styleSheetstyleSheet プロパティに適用します。

メモ:スタイルシートを使用するテキストフィールドは編集できません。つまり、type プロパティが TextFieldType.INPUT に設定されたテキストフィールドの場合、テキストフィールドのデフォルトのテキストに StyleSheet が適用され、その内容は、ユーザー側で編集することができません。入力テキストフィールドにスタイルを割り当てる場合は、TextFormat クラスの使用を検討してください。

Flash Player は、オリジナルの CSS1 仕様 (www.w3.org/TR/REC-CSS1) の一部のプロパティをサポートします。次の表に、サポートされている CSS (カスケーディングスタイルシート) プロパティとその値、および対応する ActionScript プロパティの名前を示します。ActionScript プロパティ名は、どれも対応する CSS プロパティ名から派生しており、名前にハイフンが含まれる場合はハイフンを省略し、後ろの文字を大文字にしています。

CSS プロパティActionScript プロパティ用途とサポートされる値
color color 16 進数のカラー値のみがサポートされます。blue などの名前付きカラーはサポートされません。カラーは、#FF0000 のフォーマットで記述されます。
display display サポートされる値は inlineblock、および none です。
font-family fontFamily 使用するフォントをカンマ区切りリストで指定します。優先度の高い順に並べます。任意のフォントファミリ名を使用できます。汎用フォント名を指定した場合、適切なデバイスフォントに置換されます。次のようなフォント変換が行われます。mono_typewriter に変換され、sans-serif_sans に変換され、serif_serif に変換されます。
font-size fontSize 値の数字の部分だけを使用します。単位 (px、pt) は解析されません。ピクセルとポイントは同じ意味になります。
font-style fontStyle 有効な値は normalitalic です。
font-weight fontWeight 有効な値は normalbold です。
kerning kerning 有効な値は truefalse です。カーニングは、埋め込みフォントに対してのみサポートされています。Courier New など特定のフォントでは、カーニングがサポートされていません。カーニングのプロパティは、Macintosh で作成された SWF ファイルではなく、Windows で作成された SWF ファイルでのみサポートされます。ただし、これらの SWF ファイルは Windows 以外のバージョンの Flash Player で表示することが可能であり、カーニングも適用されます。
leading leading 行間に均等に配分されるスペースの量です。各行の下に追加されるピクセル数を表す値です。負の値を指定すると、行の間隔が狭くなります。値の数字の部分だけを使用します。単位 (px、pt) は解析されません。ピクセルとポイントは同じ意味になります。
letter-spacing letterSpacing 文字間に均等に配分されるスペースの量です。この値は、各文字の後の送りに追加されるピクセル数を示します。負の値を指定すると、文字の間隔が狭くなります。値の数字の部分だけを使用します。単位 (px、pt) は解析されません。ピクセルとポイントは同じ意味になります。
margin-left marginLeft 値の数字の部分だけを使用します。単位 (px、pt) は解析されません。ピクセルとポイントは同じ意味になります。
margin-right marginRight 値の数字の部分だけを使用します。単位 (px、pt) は解析されません。ピクセルとポイントは同じ意味になります。
text-align textAlign 有効な値は leftcenterright、および justify です。
text-decoration textDecoration 有効な値は noneunderline です。
text-indent textIndent 値の数字の部分だけを使用します。単位 (px、pt) は解析されません。ピクセルとポイントは同じ意味になります。

例を表示

関連項目

flash.text.TextField


パブリックプロパティ
 プロパティ定義元
 Inheritedconstructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
Object
 Inheritedprototype : Object
[静的] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
Object
  styleNames : Array
[読み取り専用] このスタイルシートに登録されているすべてのスタイルの名前 (ストリング) を含む配列です。
StyleSheet
パブリックメソッド
 メソッド定義元
  
新しい StyleSheet オブジェクトを作成します。
StyleSheet
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録し、リスナーがイベントの通知を受け取るようにします。
EventDispatcher
  
スタイルシートオブジェクトのスタイルをすべて削除します。
StyleSheet
 Inherited
イベントをイベントフローに送出します。
EventDispatcher
  
styleName という名前のスタイルに関連付けられているスタイルオブジェクトのコピーを返します。
StyleSheet
 Inherited
EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。
EventDispatcher
 Inherited
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
Object
 Inherited
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
Object
  
CSSText の CSS を解析し、その内容を含むスタイルシートをロードします。
StyleSheet
 Inherited
指定されたプロパティが存在し、列挙できるかどうかを示します。
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
EventDispatcher オブジェクトからリスナーを削除します。
EventDispatcher
 Inherited
ループ処理に対するダイナミックプロパティの可用性を設定します。
Object
  
setStyle(styleName:String, styleObject:Object):void
指定された名前を使用して、新しいスタイルをスタイルシートオブジェクトに追加します。
StyleSheet
 Inherited
指定されたオブジェクトのストリング表現を返します。
Object
  
CSS 解析機能を拡張します。
StyleSheet
 Inherited
指定されたオブジェクトのプリミティブな値を返します。
Object
 Inherited
指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。
EventDispatcher
イベント
 イベント 概要 定義元
 Inherited[ブロードキャスト イベント] Flash Player または AIR アプリケーションがオペレーティングシステムのフォーカスを取得して、アクティブになったときに送出されます。EventDispatcher
 Inherited[ブロードキャスト イベント] Flash Player または AIR アプリケーションがオペレーティングシステムのフォーカスを失って、非アクティブになったときに送出されます。EventDispatcher
プロパティの詳細
styleNamesプロパティ
styleNames:Array  [読み取り専用]

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

このスタイルシートに登録されているすべてのスタイルの名前(ストリング)を含む配列です。



実装
    public function get styleNames():Array
コンストラクタの詳細
StyleSheet()コンストラクタ
public function StyleSheet()

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

新しい StyleSheet オブジェクトを作成します。

関連項目

メソッドの詳細
clear()メソッド
public function clear():void

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

スタイルシートオブジェクトのスタイルをすべて削除します。

getStyle()メソッド 
public function getStyle(styleName:String):Object

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

styleName という名前のスタイルに関連付けられているスタイルオブジェクトのコピーを返します。styleName に関連付けられているスタイルオブジェクトがない場合は、null が返されます。

パラメータ

styleName:String — 取得するスタイルの名前を示すストリングです。

戻り値
Object — オブジェクトです。

関連項目



例の使用法
parseCSS() または transform() メソッドの例を参照して、getStyle() メソッドの使用方法を確認してください。
parseCSS()メソッド 
public function parseCSS(CSSText:String):void

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

CSSText の CSS を解析し、その内容を含むスタイルシートをロードします。CSSText 内のスタイルが styleSheet に既に含まれている場合は、styleSheet のプロパティは維持され、CSSText だけに含まれるスタイルが styleSheet に追加または変更されます。

ネイティブ CSS 解析機能を拡張するには、StyleSheet クラスのサブクラスを作成して、このメソッドをオーバーライドします。

パラメータ

CSSText:String — 解析する CSS テキストです (ストリング)。




次の例では、ユーザーがテキストファイルをクリックすると、ファイルからロードした CSS スタイルがコンテンツに適用されます。

コンストラクタで、複数行テキストフィールドが作成され、そのコンテンツが HTML フォーマットのストリングに設定されます。 (CSS スタイルが適用されるまで、HTML ヘッダーと span タグはレンダリングされません。) CSS ファイルの場所を識別するために、URLRequest オブジェクトが作成されます。この例では、CSS ファイルは SWF ファイルと同じディレクトリにあります。ファイルが URLLoader オブジェクトによってロードされます。2 つのイベントリスナーが loader URLLoader オブジェクトに追加されます。IO エラーが発生すると、errorHandler() メソッドが呼び出され、テキストフィールドにエラーメッセージが表示されます。すべてのデータを受信して loader URLLoader オブジェクトのデータプロパティに配置した後に、loaderCompleteHandler() メソッドが呼び出されます。このメソッドは、ファイルからロードしたデータの CSS スタイルを解析し、そのスタイル定義を sheet StyleSheet オブジェクトに設定します。

ユーザーがテキストフィールドをクリックすると、clickHandler() メソッドが呼び出されます。clickHandler() メソッドの if ステートメントが、スタイルシートをテキストフィールドに適用する前にファイルの読み込みが完了しているかどうかを確認します。スタイルシートを有効にするために、スタイルシートをテキストフィールドに割り当ててから、htmlText プロパティをコンテンツに再割り当てする必要があります。CSS font-family とヘッダタグの color プロパティの値もテキストフィールドのコンテンツに追加されます。スタイルシートの値が有効になっていない場合、これらのプロパティの値は "undefined" になります。

この例で使用できる CSS ファイルのコンテンツの例を以下に示します。この例を実行する前に、テキストファイルを作成し、次の CSS コンテンツをこのファイルにコピーし、ファイル名を test.css として SWF ファイルと同じディレクトリに保存します。

   p {
      font-family: Times New Roman, Times, _serif;
      font-size: 14;
       font-Style: italic;
	    margin-left: 10;  
   }
   h1 {
      font-family: Arial, Helvetica, _sans;
      font-size: 20;
      font-weight: bold;
   }
   .bluetext {
      color: #0000CC;
   }
 
package {
    import flash.display.Sprite;
    import flash.net.URLLoader;
    import flash.net.URLRequest;
    import flash.text.StyleSheet;
    import flash.text.TextField;
    import flash.text.TextFieldAutoSize;
    import flash.events.IOErrorEvent;
    import flash.events.Event;
    import flash.events.MouseEvent;

    public class StyleSheet_parseCSSExample extends Sprite {
        private var loader:URLLoader = new URLLoader();
        private var field:TextField = new TextField();
        private var exampleText:String = "<h1>This is a headline</h1>"
                    + "<p>This is a line of text. <span class='bluetext'>" 
                    + "This line of text is colored blue.</span></p>";
        private var sheet:StyleSheet = new StyleSheet();
        private var cssReady:Boolean = false;

        public function StyleSheet_parseCSSExample() {
            field.x = 10;
            field.y = 10;
            field.background = true;
            field.multiline = true;
            field.autoSize = TextFieldAutoSize.LEFT;
            field.htmlText = exampleText;

            field.addEventListener(MouseEvent.CLICK, clickHandler);
            
            addChild(field);
            
            var req:URLRequest = new URLRequest("test.css");
            loader.load(req);

            loader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
            loader.addEventListener(Event.COMPLETE, loaderCompleteHandler);
        }

        public function errorHandler(e:IOErrorEvent):void {
            field.htmlText = "Couldn't load the style sheet file.";
        }

        public function loaderCompleteHandler(event:Event):void {
            sheet.parseCSS(loader.data);
            cssReady = true;
        }

        public function clickHandler(e:MouseEvent):void {

            if (cssReady) {
                field.styleSheet = sheet;
                field.htmlText = exampleText;
                
                var style:Object = sheet.getStyle("h1");
                field.htmlText += "<p>Headline font-family is: " + style.fontFamily + "</p>";
                field.htmlText += "<p>Headline color is: " + style.color + "</p>";  

            } else {
                field.htmlText = "Couldn't apply the CSS styles.";
            }
        }
    }
}
setStyle()メソッド 
public function setStyle(styleName:String, styleObject:Object):void

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

指定された名前を使用して、新しいスタイルをスタイルシートオブジェクトに追加します。指定したスタイルがスタイルシートに存在しない場合は、追加されます。指定したスタイルがスタイルシートに既に存在する場合は、新しいスタイルに置き換えられます。styleObject パラメータに null を指定した場合は、指定したスタイルが削除されます。

このメソッドに渡したスタイルオブジェクトのコピーが作成されます。

サポートされるスタイルの一覧については、StyleSheet クラスの説明に記載されている表を参照してください。

パラメータ

styleName:String — スタイルシートに追加するスタイルの名前を示すストリングです。
 
styleObject:Object — スタイルを記述するオブジェクト、または null です。

transform()メソッド 
public function transform(formatObject:Object):TextFormat

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0 Flash Player 9

CSS 解析機能を拡張します。上級開発者であれば、StyleSheet クラスを拡張して、このメソッドをオーバーライドできます。

パラメータ

formatObject:Object — スタイルを記述するオブジェクト、または null です。このスタイルには、オブジェクトのプロパティとしてスタイル規則が含まれます。

戻り値
TextFormat — CSS 規則をテキストフォーマットプロパティにマッピングした結果を含む TextFormat オブジェクトです。

関連項目




この例では、transform() メソッドを使用して CSS ファイルのスタイルをテキストフィールドの TextFormat オブジェクトに適用します。

通常、CSS スタイルは HTML コンテンツをフォーマットするために使用されます。ただし、StyleSheet オブジェクトの transform() メソッドを使用することで、特定の CSS スタイルを TextFormat オブジェクトに割り当て、任意のテキストフィールドに適用できます。

URLRequest および URLLoader オブジェクトは CSS ファイルをロードするために使用されます。イベントリスナーが Event.COMPLETE イベントに追加されます。このイベントは、すべてのデータが受信され、loader URLLoader オブジェクトの data プロパティに配置された後に発生します。次に、loaderCompleteHandler() メソッドがファイルから読み込んだデータの CSS を解析し、このスタイルを sheet StyleSheet オブジェクトに設定します。スタイルシートの getStyle() メソッドが HTML 段落スタイルを取得し、cssFormat TextFormat オブジェクトに割り当てます(スタイルシートの transform() メソッドを使用)。最後に、inputField テキストフィールドのデフォルトのテキストフォーマットが、新しい cssFormat テキストフォーマットに設定されます。

package {
    import flash.display.Sprite;
    import flash.net.URLLoader;
    import flash.net.URLRequest;
    import flash.text.StyleSheet;
    import flash.text.TextField;
    import flash.text.TextFormat;
    import flash.text.TextFieldType;
    import flash.events.IOErrorEvent;
    import flash.events.Event;

    public class StyleSheet_transformExample extends Sprite {
        private var loader:URLLoader = new URLLoader();
        private var inputField:TextField = new TextField();
        private var sheet:StyleSheet = new StyleSheet();

        public function StyleSheet_transformExample() {
            inputField.x = 10;
            inputField.y = 10;
            inputField.background = true;
            inputField.width = 300;
            inputField.height = 200;
            inputField.wordWrap = true;
            inputField.multiline = true;    
            inputField.type = TextFieldType.INPUT;

            addChild(inputField);
            
            var req:URLRequest = new URLRequest("test.css");
            loader.load(req);

            loader.addEventListener(IOErrorEvent.IO_ERROR, errorHandler);
            loader.addEventListener(Event.COMPLETE, loaderCompleteHandler);
        }

        public function errorHandler(e:IOErrorEvent):void {
            inputField.htmlText = "Couldn't load the style sheet file.";
        }

        public function loaderCompleteHandler(event:Event):void {
            var cssFormat:TextFormat = new TextFormat();
            sheet.parseCSS(loader.data);
            var style:Object = sheet.getStyle("p");
            cssFormat = sheet.transform(style);
            inputField.defaultTextFormat = cssFormat;
        }
    }
}
例の使用法
StyleSheetExample.as

次の例では、新しいスタイルシートを作成して、見出しのスタイルにボールドと赤のフォント属性を割り当てます。
 
package {
    import flash.display.Sprite;
    import flash.text.StyleSheet;
    import flash.text.TextField;
    import flash.text.TextFieldAutoSize;

    public class StyleSheetExample extends Sprite {

        public function StyleSheetExample() {
            var style:StyleSheet = new StyleSheet();

            var heading:Object = new Object();
            heading.fontWeight = "bold";
            heading.color = "#FF0000";

            var body:Object = new Object();
            body.fontStyle = "italic";

            style.setStyle(".heading", heading);
            style.setStyle("body", body);

            var label:TextField = new TextField();
            label.styleSheet = style;
            label.htmlText = "<body><span class='heading'>Hello </span>World...</body>";
            addChild(label);
        }
    }
}




 

 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート

現在のページ: http://livedocs.adobe.com/flex/3_jp/langref/flash/text/StyleSheet.html