TLF #2

by zahir
♥0 | Line 55 | Modified 2010-03-27 23:21:15 | MIT License
play

ActionScript3 source code

/**
 * Copyright zahir ( http://wonderfl.net/user/zahir )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/fNpj
 */

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" 
width="465" height="465"
creationComplete="c_init();" >

	<mx:Script>
		<![CDATA[
			import flashx.textLayout.container.ContainerController;
			import flashx.textLayout.conversion.TextConverter;
			import flashx.textLayout.elements.Configuration;
			import flashx.textLayout.elements.TextFlow;
			import flashx.textLayout.formats.BlockProgression;
			import flashx.textLayout.formats.JustificationRule;
			import flashx.textLayout.formats.TextLayoutFormat;
			
			import mx.collections.ArrayCollection;
			
			private var config:Configuration;
			private var format:TextLayoutFormat;
			private var ctrl:ContainerController;
			
			private function c_init():void{
				setFonts();
				
				config = new Configuration();
				format = new TextLayoutFormat();
				ctrl = new ContainerController( c, cnvs.width, cnvs.height);
				
				format.locale = "ja";
				format.justificationRule = JustificationRule.EAST_ASIAN;
				format.blockProgression = BlockProgression.RL;
				
				config.textFlowInitialFormat = format;
				
				onChangeFont();
			}
			private function onChangeFont():void{
				var str:String = "<flow:TextFlow xmlns:flow='http://ns.adobe.com/textLayout/2008'><flow:p>";
				for(var i:int = 1, len:int = 100; i<=len; i++){
					str += "<flow:span fontSize='"+ i +"' fontFamily='"+fonts.selectedItem +"'>あ</flow:span>";
				}
				str += "</flow:p></flow:TextFlow>";
				var flow:TextFlow = TextConverter.importToFlow(str, TextConverter.TEXT_LAYOUT_FORMAT, config);
				flow.flowComposer.addController( ctrl );
				flow.flowComposer.updateAllControllers();
			}
			private function setFonts():void{
				var allFonts:Array = Font.enumerateFonts(true);
				var _arr:Array = new Array();
				allFonts.sortOn("fontName", Array.CASEINSENSITIVE);
				for(var i:int=0;i<allFonts.length;i++){
					_arr[i] = allFonts[i].fontName;
				}
				fonts.dataProvider = new ArrayCollection(_arr);
				fonts.selectedIndex = 0;
			}
		]]>
	</mx:Script>
	<mx:ComboBox id="fonts" change="onChangeFont();" left="0" top="0" right="0"/>
	<mx:Canvas id="cnvs" left="3" right="3" bottom="5" top="25" backgroundColor="#FFFFFF">
		<mx:UIComponent id="c" />
	</mx:Canvas>
</mx:Application>