Category Flash Tips,Papervision3Dを試す Update 2009.05.12
今度は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) { } } }