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) {
			

		}
	}
}
ページトップへ
kid