papervision3D 2.X EX.08 テキストを配置してみる | 東京都世田谷区 ホームページ制作 [k]id

papervision3D 2.X EX.08 テキストを配置してみる

Category Flash Tips,Papervision3Dを試す Update 2009.05.12

twitterfacebookgoogle+はてなブックマークPocketであとで読むfeedlyで購読

今度はpapervision3DのText3Dを使用して
テキストを配置してみたいとおもいます。

まずはimport で各クラスを読み込み

//テキストを有効
import org.papervision3d.materials.special.Letter3DMaterial;
import org.papervision3d.typography.Text3D;
import org.papervision3d.typography.fonts.HelveticaBold;

下記を記述し描画する。

//マテリアルを設定
LMaterial = new Letter3DMaterial(0xff00ff , 1);
//裏面でもみえます
LMaterial.doubleSided = true;
//テキストを宣言するText3D(表示するテキスト、フォント名、マテリアル名)
textdata = new Text3D("Ca-style.com" , new HelveticaBold() , LMaterial);
textdata.scaleX = 1;
textdata.scaleY = 1;
textdata.z = -600;
textdata.y = 39;
textdata.rotationY = -90;
scene.addChild(textdata);

[embedSWF]http://kidokorock.com/wp-content/uploads/2009/05/txt_castyle.swf, 640, 450[/embedSWF]
サンプル

ソースは↓です。

package {
import flash.display.Sprite;
import flash.events.Event;
//------------------------------------------------------------
//                                             クラス読み込み
import org.papervision3d.cameras.Camera3D;
import org.papervision3d.objects.DisplayObject3D;
import org.papervision3d.render.BasicRenderEngine;
import org.papervision3d.scenes.Scene3D;
import org.papervision3d.view.Viewport3D;
//カラーマテリアルを有効に
import org.papervision3d.materials.ColorMaterial;
//クリックイベントを有効
import org.papervision3d.events.InteractiveScene3DEvent;
import caurina.transitions.Tweener;
//テキストを有効
import org.papervision3d.materials.special.Letter3DMaterial;
import org.papervision3d.typography.Text3D;
import org.papervision3d.typography.fonts.HelveticaBold;
//キューブを有効
import org.papervision3d.objects.primitives.Cube;
import org.papervision3d.materials.utils.MaterialsList;
[SWF(backgroundColor="#ffffff")];
public class Main extends Sprite {
//------------------------------------------------------------
//                                                    変数定義
private var viewport:Viewport3D;
private var scene:Scene3D;
private var camera:Camera3D;
private var renderer:BasicRenderEngine;
private var rootNode:DisplayObject3D;
//クリックしたPlaneを判別
private var selectPlaneName:String;
public var letterformat:Letter3DMaterial;
public var textdata:Text3D;
public function Main() {
//------------------------------------------------------------
//                                         カメラ視点等の定義
viewport=new Viewport3D(stage.stageWidth , stage.stageHeight,true,true);
scene=new Scene3D  ;
camera=new Camera3D  ;
renderer=new BasicRenderEngine  ;
rootNode=scene.addChild(new DisplayObject3D("rootNode"));
//
addChild(viewport);
camera.zoom=10;
camera.focus=100;
camera.x=50;
camera.y=28;
camera.target=DisplayObject3D.ZERO;
//------------------------------------------------------------
//                                      XYZ軸の線
//X軸の線
var x_line_color:ColorMaterial = new ColorMaterial(0xFF0000,1);
var x_line_materials:MaterialsList = new MaterialsList({all: x_line_color});
var x_line:Cube = new Cube(x_line_materials, 2000,1,1);
scene.addChild(x_line);
//Y軸の線
var y_line_color:ColorMaterial = new ColorMaterial(0x00FF00,1);
var y_line_materials:MaterialsList = new MaterialsList({all: y_line_color});
var y_line:Cube = new Cube(y_line_materials, 1,1,2000);
scene.addChild(y_line);
//Z軸の線
var z_line_color:ColorMaterial = new ColorMaterial(0x0000FF,1);
var z_line_materials:MaterialsList = new MaterialsList({all: z_line_color});
var z_line:Cube = new Cube(z_line_materials, 1,2000,1);
scene.addChild(z_line);
//------------------------------------------------------------
//                                 テキスト オブジェクトを追加
LMaterial = new Letter3DMaterial(0xff00ff , 1);
LMaterial.doubleSided = true;
textdata = new Text3D("Ca-style.com" , new HelveticaBold() , LMaterial);
textdata.scaleX = 1;
textdata.scaleY = 1;
textdata.z = -600;
textdata.y = 39;
textdata.rotationY = -90;
scene.addChild(textdata);
//------------------------------------------------------------
//                                      イベントリスナーを追加
addEventListener(Event.ENTER_FRAME,onFrame);
}
public function onFrame(e:Event):void {
//------------------------------------------------------------
//                               マウスの座標でZ軸を基点に回転
renderer.renderScene(scene,camera,viewport);
}
private function onClickHandler(e:Event) {
}
}
}
ページトップへ