パッケージ | flash.text |
クラス | public dynamic class StyleSheet |
継承 | StyleSheet EventDispatcher Object |
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
スタイルを TextField オブジェクトに適用するには、StyleSheet オブジェクトを TextField オブジェクトの styleSheet
プロパティに適用します。
注意:スタイルシートを使用するテキストフィールドは編集できません。つまり、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
| サポートされる値は inline 、block 、および none です。 |
font-family
|
fontFamily
| 使用するフォントをカンマ区切りリストで指定します。優先度の高い順に並べます。任意のフォントファミリ名を使用できます。汎用フォント名を指定した場合、適切なデバイスフォントに置換されます。次のようなフォント変換が行われます。mono は _typewriter に、sans-serif は _sans に、serif は _serif にそれぞれ変換されます。 |
font-size
|
fontSize
| 値の数字の部分だけを使用します。単位(px、pt)は解析されません。ピクセルとポイントは同じ意味になります。 |
font-style
|
fontStyle
| 有効な値は normal と italic です。 |
font-weight
|
fontWeight
| 有効な値は normal と bold です。 |
kerning
|
kerning
| 有効な値は true と false です。カーニングは、埋め込みフォントに対してのみサポートされています。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
| 有効な値は left 、center 、right 、および justify です。 |
text-decoration
|
textDecoration
| 有効な値は none と underline です。 |
text-indent
|
textIndent
| 値の数字の部分だけを使用します。単位(px、pt)は解析されません。ピクセルとポイントは同じ意味になります。 |
関連する API エレメント
プロパティ | 定義元 | ||
---|---|---|---|
constructor : Object
指定されたオブジェクトインスタンスのクラスオブジェクトまたはコンストラクター関数への参照です。 | Object | ||
styleNames : Array [読み取り専用]
このスタイルシートに登録されているすべてのスタイルの名前(ストリング)を含む配列です。 | StyleSheet |
メソッド | 定義元 | ||
---|---|---|---|
新しい StyleSheet オブジェクトを作成します。 | StyleSheet | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録し、リスナーがイベントの通知を受け取るようにします。 | EventDispatcher | ||
スタイルシートオブジェクトのスタイルをすべて削除します。 | StyleSheet | ||
イベントをイベントフローに送出します。 | EventDispatcher | ||
styleName という名前のスタイルに関連付けられているスタイルオブジェクトのコピーを返します。 | StyleSheet | ||
EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。 | EventDispatcher | ||
オブジェクトに指定されたプロパティが定義されているかどうかを示します。 | Object | ||
Object クラスのインスタンスが、パラメーターとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。 | Object | ||
CSSText の CSS を解析し、その内容を含むスタイルシートをロードします。 | StyleSheet | ||
指定されたプロパティが存在し、列挙できるかどうかを示します。 | Object | ||
EventDispatcher オブジェクトからリスナーを削除します。 | EventDispatcher | ||
ループ処理に対するダイナミックプロパティの可用性を設定します。 | Object | ||
指定された名前を使用して、新しいスタイルをスタイルシートオブジェクトに追加します。 | StyleSheet | ||
ロケール固有の規則に従って書式設定された、このオブジェクトのストリング表現を返します。 | Object | ||
指定されたオブジェクトのストリング表現を返します。 | Object | ||
CSS 解析機能を拡張します。 | StyleSheet | ||
指定されたオブジェクトのプリミティブな値を返します。 | Object | ||
指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。 | EventDispatcher |
styleNames | プロパティ |
StyleSheet | () | コンストラクター |
public function StyleSheet()
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
新しい StyleSheet オブジェクトを作成します。
関連する API エレメント
clear | () | メソッド |
public function clear():void
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
スタイルシートオブジェクトのスタイルをすべて削除します。
getStyle | () | メソッド |
public function getStyle(styleName:String):Object
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
styleName
という名前のスタイルに関連付けられているスタイルオブジェクトのコピーを返します。styleName
に関連付けられているスタイルオブジェクトがない場合は、null
が返されます。
パラメーター
styleName:String — 取得するスタイルの名前を示すストリングです。
|
Object — オブジェクトです。
|
関連する API エレメント
例
この例の使用方法
parseCSS() または transform() メソッドの例を参照して、
getStyle()
メソッドの使用方法を確認してください。
parseCSS | () | メソッド |
public function parseCSS(CSSText:String):void
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
CSSText
の CSS を解析し、その内容を含むスタイルシートをロードします。CSSText
内のスタイルが styleSheet
に既に含まれている場合は、styleSheet
のプロパティは維持され、CSSText
だけに含まれるスタイルが styleSheet
に追加または変更されます。
ネイティブ CSS 解析機能を拡張するには、StyleSheet クラスのサブクラスを作成して、このメソッドをオーバーライドします。
パラメーター
CSSText:String — 解析する 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, Flash Lite 4 |
指定された名前を使用して、新しいスタイルをスタイルシートオブジェクトに追加します。指定したスタイルがスタイルシートに存在しない場合は、追加されます。指定したスタイルがスタイルシートに既に存在する場合は、新しいスタイルに置き換えられます。styleObject
パラメーターに null
を指定した場合は、指定したスタイルが削除されます。
このメソッドに渡したスタイルオブジェクトのコピーが作成されます。
サポートされるスタイルの一覧については、StyleSheet クラスの説明に記載されている表を参照してください。
パラメーター
styleName:String — スタイルシートに追加するスタイルの名前を示すストリングです。
| |
styleObject:Object — スタイルを記述するオブジェクト、または null です。
|
transform | () | メソッド |
public function transform(formatObject:Object):flash.text:TextFormat
言語バージョン: | ActionScript 3.0 |
ランタイムバージョン: | AIR 1.0, Flash Player 9, Flash Lite 4 |
CSS 解析機能を拡張します。上級開発者であれば、StyleSheet クラスを拡張して、このメソッドをオーバーライドできます。
パラメーター
formatObject:Object — スタイルを記述するオブジェクト、または null です。このスタイルには、オブジェクトのプロパティとしてスタイル規則が含まれます。
|
flash.text:TextFormat — CSS 規則をテキストフォーマットプロパティにマッピングした結果を含む TextFormat オブジェクトです。
|
関連する API エレメント
例 ( この例の使用方法 )
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; } } }
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); } } }
Tue Jun 12 2018, 10:34 AM Z