fc2ブログ
WEBマスター目指して日々勉強!!
page top
[papervision3d] マテリアルの種類
CATEGORY/papervision3d
マテリアルの種類を調べたら
下記サイトが親切にまとめてありました。
参考にさせていただきます。

http://blog.rainyday.jp/flash/pv3d/PV3D_material.html

page top
[as3]useHandCursorってなに?
CATEGORY/as3
this.useHandCursor = true;

マウスがボタン上に移動したときに、Flash Playser がハンドカーソルを表示するかどうかを示すブール値です。true に設定されると、ハンドカーソルを表示します。このプロパティを false に設定すると、代わりに矢印カーソルが表示されます。デフォルト値は true です。

useHandCursor プロパティは必要に応じていつでも変更できます。変更されたボタンでは新しいカーソルの動作が即座に使用されます。


page top
[as3] as3でウィンドウオープン(window.open)
CATEGORY/as3
ポップアップブロックを表示させずに、ポップアップウィンドウを呼び出す手法が
下記サイトににて詳しく掲載されていました。

http://feb19.jp/blog/archives/000126.php

------------------------------------------
btn.buttonMode = true;
btn.addEventListener(MouseEvent.CLICK, click);
function click(event:MouseEvent){
    var url:String = new String();
    url = "リンク先文字列";
    ExternalInterface.call("window.open", url, "_blank", "width=100, height=100");
}

------------------------------------------

page top
[papervision3d] ベクターテキスト(Text3D)で任意のフォントを使用する
CATEGORY/papervision3d
papervision3dではベクターテキストを使用することができるが
デフォルトで使用できるフォントは、下記に限られる。

・HelveticaBold
・HelveticaLight
・HelveticaMedium
・HelveticaRoman


まず前提として
下記のクラスでText3Dを使用できること確認。

-------------------------------------------------------------------
package {
    import flash.events.*;
    import flash.utils.*;
    import org.papervision3d.materials.*;
    import org.papervision3d.materials.special.*;
    import org.papervision3d.typography.fonts.*;
    import org.papervision3d.typography.*;
    import org.papervision3d.view.*;
    public class Main extends BasicView {
        public function Main():void {
            //マテリアルを作成
            var material:Letter3DMaterial = new Letter3DMaterial(0x006699);
            material.doubleSided = true;
           
            //ベクターテキストを作成
            var font:HelveticaBold = new HelveticaBold(); //ここで表示するフォントの種類を設定
            var text3D:Text3D = new Text3D("Papervision3D World", font, material);

            scene.addChild(text3D);
           
            startRendering();
        }
    }
}
-------------------------------------------------------------------

「var font:HelveticaBold = new HelveticaBold()」の部分でフォントを変えられるわけです。


そこで、任意のフォントをベクターテキストにする方法をメモる。
大きな手順として、下記の工程を行う。


●ベクターテキストに使用したいフォントをクラスファイル(.as)にする
●フォントをクラスファイルを編集
●実行するasを作成



では具体的に見ていこう
続きを読む
page top
[papervision3d] jiglibFlash 使い方
CATEGORY/papervision3d
使い方は結構簡単。
papervision3dで生成したプリミティブを
「JBox」「JPlane」「JSphere」のクラスに渡し
物理演算をしてくれるインスタンスを生成する。

そして、
「PhysicsSystem.getInstance().AddBody(インスタンス);」で物理演算の対象に

最後にエンターフレーム内に毎処理を加えれば
一連のアニメーションが描画される。

まだまだわからないことがあるが、、


サンプルはこんな感じ、



package{
    import flash.events.Event;

    import org.papervision3d.materials.utils.MaterialsList;
    import org.papervision3d.materials.WireframeMaterial;
    import org.papervision3d.objects.primitives.Cylinder;
    import org.papervision3d.objects.primitives.Plane;
    import org.papervision3d.objects.primitives.Sphere;
   
    import org.papervision3d.objects.primitives.Cube;
    import org.papervision3d.view.BasicView;
   
    import jiglib.physics.PhysicsSystem;
    import jiglib.math.JNumber3D;
    import jiglib.math.JMatrix3D;
    import jiglib.geometry.JBox;
    import jiglib.geometry.JPlane;
    import jiglib.geometry.JSphere;
   
    public class Main extends BasicView{
       
        public function Main():void {
        super(550, 400, true, false, "Debug");
        camera.y = 1000;   
           
        //重力設定 デフォルトは(0, -10, 0) 省略可
        PhysicsSystem.getInstance().SetGravity(new JNumber3D(0, -10, 0));
       
        var mList:MaterialsList = new MaterialsList();
        mList.addMaterial(new WireframeMaterial(0xffffff), "all");
       
       
        //床
        var cubeObj:Cube = new Cube(mList, 1000, 1000, 500, 1, 1, 1, 0, 0);
        scene.addChild(cubeObj);
       
        var ground:JBox = new JBox(cubeObj, false, 1000, 1000, 500);
        PhysicsSystem.getInstance().AddBody(ground);
        ground.Material.Restitution = 0.8;//反発力 大きいほどぴょんぴょん
        ground.Material.StaticFriction = 0.9;
       
       
        //キューブ
        var cubeObj2:Cube = new Cube(mList, 50, 50, 50, 1, 1, 1, 0, 0);
        scene.addChild(cubeObj2);
       
        var cube:JBox = new JBox(cubeObj2, true, 50, 50, 50);
        cube.MoveTo(new JNumber3D(0, 1000, 0), JMatrix3D.IDENTITY);
        PhysicsSystem.getInstance().AddBody(cube);
       
       
        //球
        var ballObj:Sphere = new Sphere(null,50,8,6);
        scene.addChild(ballObj);
       
        var ball:JSphere = new JSphere(ballObj, true, 50);
        ball.MoveTo(new JNumber3D(0, 700, 0), JMatrix3D.IDENTITY);
        PhysicsSystem.getInstance().AddBody(ball);

       
        //いた
        var planeObj:Plane = new Plane(null, 200, 200, 0, 0);
        scene.addChild(planeObj);
       
        var plane:JPlane = new JPlane(planeObj);
        plane.MoveTo(new JNumber3D(0, 600, 0), JMatrix3D.rotationX(Math.PI / 2.5));
        PhysicsSystem.getInstance().AddBody(plane);
       
       
        startRendering();
        addEventListener(Event.ENTER_FRAME, loop);
       
        }
        private function loop(e:Event):void {
            PhysicsSystem.getInstance().Integrate(0.3);
        }
    }
   
}
© WEB-WORKMAN. all rights reserved.
Page top
FC2 BLOG