Home

はじまりたいです

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書く事で広告が消せます。
  • Comments (Close): -
  • TrackBack (Close): -

AS3 テキストの描画

  • 2009-08-28 (Fri)
  • AS3
基本的な事柄。
任意のテキストをstageに描画する方法。

text_draw01.png


package 
{
import flash.display.Sprite;
import flash.text.*;

/**
* ...
* @author taxpon
*/
public class TextDraw extends Sprite
{
private var tf:TextField = new TextField();
private var format:TextFormat = new TextFormat();

public function TextDraw():void {

format.size = 24;
tf.defaultTextFormat = format;
tf.setTextFormat(format);
tf.text = "Hello, world!"
tf.width = tf.textWidth;

addChild(tf);
}
}

}



簡単な解説。
TextFieldはテキストを格納し、描画することができるクラス。
TextFormatはTextFieldに格納するためのformatを定めるためのクラス。

tf.defaultTextFormat = format;


もしくは

tf.setTextFormat(format);


のようにformatを反映させる。
両者の違いは、前者はこの宣言以降のデフォルトのフォーマットとして宣言されるので
それまでに tf.text に格納されている文字列に関しては反映されないということ、に対し
後者は宣言された時点で tf.text 内のすべての文字列に対して反映される、ということ。

そのため上の例で
format.size = 24;
tf.text = "Hello, world!"
tf.defaultTextFormat = format;

とすると、formatの内容は反映されない。

ちなみに TextField の textWidth と width の違いは
前者は text に格納されている文字列全体の幅、
width は文字列の表示領域の幅を表す。

width は 100 で初期化されるので、それよりも大きい値の textWidth を持つ場合は
文字列が切れないように、width の値を変更しなければならない。

AS3 BitmapDataの練習

  • 2009-08-28 (Fri)
  • AS3
BitmapDataの練習。

http://onegame.bona.jp/example/bitmap/
こちらのサイトを参考に作ってみる。


package
{
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.MovieClip;

/**
* ...
* @author taxpon
*/
public class BitmapDraw extends MovieClip {

private var bitmap:Bitmap;
private var bitmapData:BitmapData;

public function BitmapDraw() {
trace("BitmapDraw");

bitmapData = new BitmapData(550, 550);
bitmap = new Bitmap(bitmapData);
addChild(bitmap);

for (var i:int = 0; i < 550; i++) {
for (var j:int = 0; j < 550; j++) {
bitmapData.setPixel(i, j, 0x100000 * i * i + 0x000100 * j * j);
}
}
}
}
}


ちょいちょいパラメタをいじるといろいろ変わって面白い。

Bit_graphics01.png

Bit_graphics02.png

Bit_graphics03.png

SIO2 投影について

SIO2での透視投影・平行投影の方法。

透視投影はサンプルにあったので、以下の通りやればOK。
sio2Perspective( _SIO2camera->fov,
sio2->_SIO2window->scl->x / sio2->_SIO2window->scl->y,
_SIO2camera->cstart,
_SIO2camera->cend );

平行に関しては
void sio2Orthof (GLfloat left, GLfloat right, GLfloat bottom, GLfloat top, GLfloat zNear, GLfloat zFar);

という関数があるよう。

SIO2cameraのパラメータを見てみたが、よくわからなかったので

sio2Orthof (-5.0*(sio2->_SIO2window->scl->x / sio2->_SIO2window->scl->y), 5.0*(sio2->_SIO2window->scl->x / sio2->_SIO2window->scl->y), -5.0, 5.0, _SIO2camera->cstart, _SIO2camera->cend);

のように使ってみた。

ら、とりあえずうまくいったのでOKとする。

AS3 多次元配列

  • 2009-08-26 (Wed)
  • AS3
AS3では多次元配列の作り方が、めんどくさい。
知らなかった。

for文で回さないと行けないみたい。
あああ

参照
http://www.mdn.co.jp/content/view/7642/129/

AS3 描画領域の大きさの取得

  • 2009-08-26 (Wed)
  • AS3
AS3で描画可能領域の大きさの取得は
stage.stageWidthとstage.stageHeightでデきる。

stage.widthおよびstage.heightでは不可。

以下、adobeのリファレンスからの抜粋。

stageHeight : int
ステージの現在の高さ (ピクセル数) です。
stageWidth : int
ステージの現在の幅をピクセル単位で指定します。


height : Number
表示オブジェクトの高さを示します (ピクセル単位)。
width : Number
表示オブジェクトの幅を示します (ピクセル単位)。

Home

Recent Comments
Recent Trackback
Search
Meta
Links
Feeds

Page Top