forked from: フォント選択
forked from フォント選択 (diff: 175)
ActionScript3 source code
/**
* Copyright forzamk ( http://wonderfl.net/user/forzamk )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/5D3f
*/
<?xml version="1.0" encoding="utf-8"?>
<!-- forked from tkinjo's フォント選択 -->
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:mx="library://ns.adobe.com/flex/mx"
xmlns:s="library://ns.adobe.com/flex/spark"
width="465" height="465">
<s:layout>
<s:VerticalLayout paddingTop="10" paddingLeft="10" paddingBottom="10" paddingRight="10" />
</s:layout>
<fx:Script>
<![CDATA[
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.DisplayObject;
import flash.display.Loader;
import flash.events.Event;
import flash.net.FileReference;
import mx.collections.ArrayCollection;
import flashx.textLayout.elements.TextFlow;
import flash.text.engine.FontWeight;
import flash.text.engine.FontPosture;
import flash.text.engine.RenderingMode;
import spark.skins.spark.TextAreaSkin;
import mx.graphics.BitmapFill;
private const _filter:Array = [new FileFilter("load Img","*.jpg;*.jpeg;*.png;*.gif")];
private var _fileReference:FileReference;
private var _loader:Loader;
[Bindable]
public var bitmap:Bitmap;
[Bindable]
public var textAreaContentBackgroundAlpha:Number = 1;
private function vgroupInitializeHandler():void
{
fontList.dataProvider = new ArrayCollection(Font.enumerateFonts(true).sortOn("fontName", Array.CASEINSENSITIVE));
fontSize.text = "20";
textArea.textFlow.renderingMode = RenderingMode.CFF;
}
private function fontListCahngeHandler(event:Event):void
{
textArea.textFlow.fontFamily = fontList.selectedItem["fontName"];
}
private function fontSizeCahngeHandler(event:Event):void
{
textArea.textFlow.fontSize = fontSize.text;
}
private function fontColorCahngeHandler(event:Event):void
{
textArea.textFlow.color = fontColor.selectedColor;
}
//private function fontAACahngeHandler(event:Event):void
//{
// textArea.textFlow.renderingMode = (fontAA.selected)? RenderingMode.CFF: RenderingMode.NORMAL;
//}
private function fontWeightCahngeHandler(event:Event):void
{
textArea.textFlow.fontWeight = (fontWeight.selected)? FontWeight.BOLD: FontWeight.NORMAL;
}
private function fontStyleCahngeHandler(event:Event):void
{
textArea.textFlow.fontStyle = (fontStyle.selected)? FontPosture.ITALIC: FontPosture.NORMAL;
}
private function backgroundColorPickerCahngeHandler(event:Event):void
{
textAreaContentBackgroundAlpha = 1;
//var skin:TextAreaSkin = textArea.skin as TextAreaSkin;
//skin.bgFill.color = backgroundColorPicker.selectedColor;
}
private function backgroundImageButtonDown(event:Event):void
{
_fileReference = new FileReference();
_fileReference.addEventListener(Event.SELECT, onSelectBackgroundImage);
_fileReference.browse(_filter);
}
private function onSelectBackgroundImage(event:Event):void
{
backgroundImage.enabled = false;
_fileReference.addEventListener(Event.COMPLETE, onCompleteBackgroundImage);
_fileReference.load();
}
private function onCompleteBackgroundImage(event:Event):void
{
_fileReference.removeEventListener(Event.SELECT, onSelectBackgroundImage);
_fileReference.removeEventListener(Event.COMPLETE, onCompleteBackgroundImage);
_loader = new Loader();
_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompleteContentLoaderInfo);
_loader.loadBytes(_fileReference.data);
}
private function onCompleteContentLoaderInfo(event:Event):void
{
var bitmapData:BitmapData = new BitmapData(_loader.width, _loader.height);
bitmapData.draw(_loader);
bitmap = new Bitmap(bitmapData);
textAreaContentBackgroundAlpha = 0;
backgroundImage.enabled = true;
}
]]>
</fx:Script>
<s:Panel title="Text"
width="100%" height="100%"
fontFamily="メイリオ">
<s:controlBarContent>
<s:VGroup width="100%"
initialize="vgroupInitializeHandler()">
<s:HGroup width="100%" verticalAlign="middle">
<s:DropDownList id="fontList"
width="50%"
labelField="fontName"
prompt="フォントを選択してください"
change="fontListCahngeHandler(event)" />
<s:Label text="サイズ" fontSize="15" />
<s:TextInput id="fontSize"
width="10%"
restrict="[0-9]"
change="fontSizeCahngeHandler(event)" />
<s:Label text="色" fontSize="15" />
<mx:ColorPicker id="fontColor"
showTextField="true" selectedColor="0x000000"
change="fontColorCahngeHandler(event)" />
</s:HGroup>
<s:HGroup width="100%" verticalAlign="middle">
<!-->
<s:CheckBox id="fontAA" label="AA"
selected="true"
change="fontAACahngeHandler(event)" />
</!-->
<s:CheckBox id="fontWeight" label="Bold"
change="fontWeightCahngeHandler(event)" />
<s:CheckBox id="fontStyle" label="Italic"
change="fontStyleCahngeHandler(event)" />
<s:Label text="背景色" fontSize="15" />
<mx:ColorPicker id="backgroundColorPicker"
showTextField="true" selectedColor="0xffffff"
change="backgroundColorPickerCahngeHandler(event)" />
<s:Button id="backgroundImage"
label="背景画像"
buttonDown="backgroundImageButtonDown(event)" />
</s:HGroup>
</s:VGroup>
</s:controlBarContent>
<s:BorderContainer id="textAreaContainer"
width="100%" height="100%"
borderVisible="false"
backgroundImage="{bitmap}">
<s:TextArea id="textArea"
width="100%" height="100%"
textAlpha="1" contentBackgroundAlpha="{textAreaContentBackgroundAlpha}"
borderVisible="false">
<s:contentBackgroundColor>{backgroundColorPicker.selectedColor}</s:contentBackgroundColor>
<s:text>あいうえお{'\n'}アイウエオ{'\n'}阿伊宇江於{'\n'}aiueo</s:text>
</s:TextArea>
</s:BorderContainer>
</s:Panel>
</s:Application>
