fc2ブログ

PixelText variation (4)

2007/09/30 23:03 - tweener

  1. Main.as のクラスプロパティ scale:uint
  2. Pixelize.as の createPositions メソッド内、new AqLetter() の第2引数であるオブジェクト { font:String , size:uint }

scale

<Main.as での当該箇所>
for ( var i:int=0; i<len; i++ ) {
 positions[i] = Pixelize.createPositions( strs[i] , scale );
}

<Pixelize.as での当該箇所>
private static var scale:uint;	// セルの1辺の長さ

public static function createPositions(
 dispStr : String , // 表示文字列
 scl     : uint = 1 // セルの1辺の長さ
):Array {
 // 引数処理
 scale = scl;
// ピクセル化する文字列
var aqLetter:AqLetter = new AqLetter( ……
// 文字列部分のサイズを取得
var w:Number = Math.ceil( aqLetter.width  ) * scale;
var h:Number = Math.ceil( aqLetter.height ) * scale;

// センタリング用オフセット
var offsetx:Number = -w * 0.5;
var offsety:Number = -h * 0.5;

// テキストを BitmapData 化
var bmd:BitmapData = new BitmapData( w , h , ……
bmd.draw( aqLetter );

for ( var cntx:int=0; cntx<w; cntx++ ) {
 for ( var cnty:int=0; cnty<h; cnty++ ) {
  // ピクセル ARGB 取得
  argb = bmd.getPixel32( cntx , cnty );
  // 各セルの座標計算
  if ( ((argb>>24)&0xFF) != 0 ) {
   posx = ( cntx + 0.5 ) * scale + offsetx;
   posy = ( cnty + 0.5 ) * scale + offsety;
   pos_array.push( { posx:posx , posy:posy } );
  }
 }
}

// セル生成
while( len-- ) {
 obj_array.push(
  new Cell( scale , 0xffffff , 0.5 , true , 0xffffff )
 );
}

にほんブログ村 IT技術ブログへ

スポンサーサイト




コメントの投稿

非公開コメント

タグクラウド

最近の記事
カテゴリ
月別アーカイブ
プロフィール

Aquioux

Author:Aquioux
日曜 Flash プログラマ。
Flash 作品は本館で展示しています。


mailto:aquioux@mail.goo.ne.jp

ブログパーツ

あわせて読みたい

フィードメーター - 閃光的網站・弛緩複合体 -Review Division-


検索/translation
Google



オススメ本

コメント
トラックバック
RSS

Add to Google

Bloglinesで閲読登録

はてなRSSに追加

Subscribe with livedoor Reader

My Yahoo!に追加

Add to Technorati Favorites!

feedpathに追加