| パッケージ | flash.text |
| クラス | public dynamic class StyleSheet |
| 継承 | StyleSheet EventDispatcher Object |
| 言語バージョン : | ActionScript 3.0 |
| Player のバージョン : | Flash Player 9 |
スタイルを 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) は解析されません。ピクセルとポイントは同じ意味になります。 |
関連項目
| プロパティ | 定義元 | ||
|---|---|---|---|
![]() | constructor : Object
特定のオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
| Object | |
![]() | prototype : Object
[static]
クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
| Object | |
| styleNames : Array
[read-only]
このスタイルシートに登録されているすべてのスタイルの名前 (ストリング) を含む配列です。
| 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 | |
|
CSS 解析機能を拡張します。
| StyleSheet | ||
![]() |
指定されたオブジェクトのプリミティブな値を返します。
| Object | |
![]() |
指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。
| 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 — オブジェクト。
|
関連項目
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 テキスト (ストリング) です。
|
コンストラクタで、複数行テキストフィールドが作成され、そのコンテンツが 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;
}
}
}
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