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

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

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

スタイルを TextField オブジェクトに適用するには、StyleSheet オブジェクトを TextField オブジェクトの styleSheet プロパティに割り当てます。

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

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

CSS プロパティActionScript プロパティ用途とサポートされる値
colorcolor16 進数のカラー値のみがサポートされます。blue などの名前付きカラーはサポートされません。カラーは、#FF0000 のようなフォーマットで記述されます。
displaydisplayサポートされる値は inlineblock、および none です。
font-familyfontFamily使用するフォントをカンマ区切りリストで指定します。優先度の高い順に並べます。任意のフォントファミリ名を使用できます。汎用フォント名を指定した場合、適切なデバイスフォントに置換されます。次のようなフォント変換が行われます。mono_typewriter に、sans-serif_sans に、serif_serif にそれぞれ変換されます。
font-sizefontSize 値の数字の部分だけを使用します。単位 (px、pt) は解析されません。ピクセルとポイントは同じ意味になります。
font-stylefontStyle有効な値は normalitalic です。
font-weightfontWeight有効な値は normalbold です。
kerningkerning有効な値は truefalse です。カーニングは、埋め込みフォントに対してのみサポートされています。Courier New など特定のフォントでは、カーニングがサポートされていません。カーニングのプロパティは、Macintosh で作成された SWF ファイルではなく、Windows で作成された SWF ファイルでのみサポートされます。ただし、カーニングを使用した SWF ファイルは Windows 以外のバージョンの Flash Player でも表示でき、カーニングも適用されます。
leadingleading行間に均等に配分されるスペースの量です。各行の下に追加されるピクセル数を表す値です。負の値を指定すると、行の間隔が狭くなります。値の数字の部分だけを使用します。単位 (px、pt) は解析されません。ピクセルとポイントは同じ意味になります。
letter-spacingletterSpacing文字間に均等に配分されるスペースの量です。この値は、各文字の後の送りに追加されるピクセル数を示します。負の値を指定すると、文字の間隔が狭くなります。値の数字の部分だけを使用します。単位 (px、pt) は解析されません。ピクセルとポイントは同じ意味になります。
margin-leftmarginLeft値の数字の部分だけを使用します。単位 (px、pt) は解析されません。ピクセルとポイントは同じ意味になります。
margin-rightmarginRight値の数字の部分だけを使用します。単位 (px、pt) は解析されません。ピクセルとポイントは同じ意味になります。
text-aligntextAlign有効な値は leftcenterright、および justify です。
text-decorationtextDecoration有効な値は noneunderline です。
text-indenttextIndent値の数字の部分だけを使用します。単位 (px、pt) は解析されません。ピクセルとポイントは同じ意味になります。

例を表示

関連項目

flash.text.TextField


パブリック プロパティ
 プロパティ定義元
 Inheritedconstructor : Object
特定のオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
Object
 Inheritedprototype : Object
[static] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
Object
  styleNames : Array
[read-only] このスタイルシートに登録されているすべてのスタイルの名前 (ストリング) を含む配列です。
StyleSheet
パブリック メソッド
 メソッド定義元
  
新しい StyleSheet オブジェクトを作成します。
StyleSheet
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録し、リスナーがイベントの通知を受け取るようにします。
EventDispatcher
  
スタイルシートオブジェクトのスタイルをすべて削除します。
StyleSheet
 Inherited
イベントをイベントフローに送出します。
EventDispatcher
  
getStyle(styleName:String):Object
styleName という名前のスタイルに関連付けられているスタイルオブジェクトのコピーを返します。
StyleSheet
 Inherited
EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。
EventDispatcher
 Inherited
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
Object
 Inherited
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
Object
  
parseCSS(CSSText:String):void
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
  
transform(formatObject:Object):TextFormat
CSS 解析機能を拡張します。
StyleSheet
 Inherited
指定されたオブジェクトのプリミティブな値を返します。
Object
 Inherited
指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。
EventDispatcher
イベント
 イベント 概要 定義元
 Inherited Flash Player がオペレーティングシステムのフォーカスを取得して、アクティブになったときに送出されます。EventDispatcher
 Inherited Flash Player がオペレーティングシステムのフォーカスを失って、非アクティブになったときに送出されます。EventDispatcher
プロパティの詳細
styleNamesプロパティ
styleNames:Array  [read-only]

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

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


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

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

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

関連項目

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

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

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

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

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

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

パラメータ

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

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

関連項目



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

言語バージョン : ActionScript 3.0
Player のバージョン : 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 オブジェクトの data プロパティに配置されると、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
Player のバージョン : Flash Player 9

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

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

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

パラメータ

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

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

言語バージョン : ActionScript 3.0
Player のバージョン : 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/flash/9.0_jp/ActionScriptLangRefV3/flash/text/StyleSheet.html