テキストをビットマップデータに変換する
テキストをビットマップデータに変換する。
余白を削るところがポイント。
参考
OZACC.blog - TextFieldの最小限の高さ
http://blog.ozacc.com/archives/001780.html
/**
* Copyright tkinjo ( http://wonderfl.net/user/tkinjo )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/8qPw
*/
package {
/**
* テキストをビットマップデータに変換する。
* 余白を削るところがポイント。
*
* 参考
*
* OZACC.blog - TextFieldの最小限の高さ
* http://blog.ozacc.com/archives/001780.html
*/
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.geom.ColorTransform;
[SWF(width = "465", height = "465", frameRate = "60", backgroundColor = "#cccccc")]
public class Main extends Sprite {
//
private const TEXT:String = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
//
private var bitmap:Bitmap;
//
private var check:Boolean = true;
import flash.display.BitmapData;
import flash.geom.Matrix;
import flash.text.TextField;
import flash.text.TextFormat;
/**
* テキストをビットマップデータに変換する関数
*/
//function textToBitmapData( text:String, textFormat:TextFormat = null ):BitmapData {
private function textToBitmapData( text:String, textFormat:TextFormat = null ):BitmapData {
// テキストフィールドの作成
var textField:TextField = new TextField();
textField.text = text;
// テキストフォーマットの適用
if( textFormat )
textField.setTextFormat( textFormat );
// テキストフィールドの幅、高さを調節。2 * 2 の意味は参考リンク参照。
textField.width = textField.textWidth + 2 * 2;
textField.height = textField.textHeight + 2 * 2;
// ビットマップデータの作成
//var bitmapData:BitmapData = new BitmapData( textField.width - 2 * 2, textField.height - 2 * 2, true, 0 );
//*
var bitmapData:BitmapData;
if( !check )
bitmapData = new BitmapData( textField.width - 2 * 2, textField.height - 2 * 2, true, 0 );
else
bitmapData = new BitmapData( textField.width - 2 * 2, textField.height - 2 * 2, true, 0xffffffff );
//*/
// テキストフィールドをビットマップデータ上に描画。
bitmapData.draw( textField, new Matrix(1, 0, 0, 1, -2, -2) );
return bitmapData;
}
/** --------------------------------------------------
* 以下その他の処理
*/
/**
*
*/
public function Main() {
bitmap = new Bitmap();
addChild( bitmap );
draw();
stage.addEventListener( MouseEvent.CLICK, clickHandler );
}
/**
*
* @param event
*/
private function clickHandler( event:MouseEvent ):void {
check = !check;
draw();
}
/**
*
*/
private function draw():void {
var bitmapData:BitmapData = textToBitmapData( TEXT );
bitmap.bitmapData = bitmapData;
}
}
}