In case Flash no longer exists; a copy of this site is included in the Flashpoint archive's "ultimate" collection.

Dead Code Preservation :: Archived AS3 works from wonderfl.net

TextField で CSS 適用済み HTML を表示する

HTML タグに関してはあえて対応していないタグを使用(もちろん推奨されません)。
id 属性は使用できないっぽい?

Flash Player で対応している HTML タグ一覧
http://livedocs.adobe.com/flex/3_jp/langref/flash/text/TextField.html#htmlText

Flash Player で対応している CSS プロパティ一覧
http://livedocs.adobe.com/flex/3_jp/langref/flash/text/StyleSheet.html

...
@author tkinjo
Get Adobe Flash player
by tkinjo 07 Jun 2009
/**
 * Copyright tkinjo ( http://wonderfl.net/user/tkinjo )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/7LvS
 */

package  
{
	/**
	 * HTML タグに関してはあえて対応していないタグを使用(もちろん推奨されません)。
	 * id 属性は使用できないっぽい?
	 * 
	 * Flash Player で対応している HTML タグ一覧
	 * http://livedocs.adobe.com/flex/3_jp/langref/flash/text/TextField.html#htmlText
	 * 
	 * Flash Player で対応している CSS プロパティ一覧
	 * http://livedocs.adobe.com/flex/3_jp/langref/flash/text/StyleSheet.html
	 */
	
	import flash.display.Loader;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.net.URLLoader;
	import flash.net.URLRequest;
	import flash.text.StyleSheet;
	import flash.text.TextField;
	
	[SWF(width="465", height="465", frameRate="60", backgroundColor="0xffffff")]
	/**
	 * ...
	 * @author tkinjo
	 */
	public class Main extends Sprite
	{
		
		/**
		 * 
		 */
		public function Main() 
		{
			var htmlTextField:TextField = new TextField();
			htmlTextField.width = stage.stageWidth;
			htmlTextField.height = stage.stageHeight;
			htmlTextField.multiline = true;	//フィールドが複数行テキストフィールドであるかどうかを示します。
			htmlTextField.condenseWhite = true;	//HTML テキストが含まれるテキストフィールド内の余分な空白(スペース、改行など)を削除するかどうかを指定するブール値です。
			addChild( htmlTextField );
			
			//var htmlLoader:URLLoader = new URLLoader();
			//htmlLoader.addEventListener( Event.COMPLETE, function( event:Event ):void {
					//
					//htmlTextField.htmlText = htmlLoader.data;
				//} );
			//
			//var cssLoader:URLLoader = new URLLoader();
			//cssLoader.addEventListener( Event.COMPLETE, function( event:Event ):void {
					
					var styleSheet:StyleSheet = new StyleSheet();
					//styleSheet.parseCSS( cssLoader.data );
					styleSheet.parseCSS( cssText );
					htmlTextField.styleSheet = styleSheet;
					
					// スタイルシート読み込み後にテキストフィールドのテキストを設定しなければスタイルシートは設定されない。
					//htmlLoader.load( new URLRequest( "assets/news.html" ) );
				//} );
			//cssLoader.load( new URLRequest( "assets/style.css" ) );
			
			htmlTextField.htmlText = htmlText;
		}
		
		private const cssText:String = 'dl{display:block;font-family:"ヒラギノ角ゴ Pro W3","Hiragino Kaku Gothic Pro","メイリオ",Meiryo,Osaka,"MS Pゴシック","MS PGothic",sans-serif;}dt{display:block;font-weight:bold;}dd{display:block;text-indent:10;}';
		private const htmlText:String = '<dl><dt>2009年06月01日</dt><dd>a</dd><dt>2009年06月02日</dt><dd>b<br/>c<br/>d</dd><dt>2009年06月03日</dt><dd>e<br/>f</dd><dt>2009年06月04日</dt><dd>g<br/>h</dd></dl>';
	}
	
}