note.x

Papervision3Dメモ #4

使い方がさっぱり解らなくて保留にしてたオブジェクトクラス「Stars.as」を試してみた。けど未だによくわかんねぇ。基礎をすっ飛ばしてきたツケがぼちぼち重くのし掛かってきた今日この頃。このクラス使ったサンプルソースってどっかに無いのかなぁ(他力本願)

obj_Stars.swf(要:FlashPlayer9)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
package
{
    import flash.display.*;
    import flash.events.*;
 
    import org.papervision3d.scenes.*;
    import org.papervision3d.objects.*;
    import org.papervision3d.cameras.*;
    import org.papervision3d.materials.*;
 
    [SWF(backgroundColor=0x000000)]
 
    public class obj_Stars extends Sprite
    {
        // _______________________________________________________________________
        //                                                                  vars3D
        private var container : Sprite;
        private var scene     : Scene3D;
        private var camera    : Camera3D;
 
        private var starObj  : DisplayObject3D;
        private var valx      : Number = 0;
        private var valy      : Number = 0;
 
        // _______________________________________________________________________
        //                                                             Constructor
        public function obj_Stars():void
        {
            stage.frameRate = 60;
            stage.quality   = "MEDIUM";
            stage.scaleMode = "noScale";
            stage.align = StageAlign.TOP_LEFT;
            this.addEventListener(Event.ENTER_FRAME, loop3D);
            this.stage.addEventListener(Event.RESIZE, onStageResize);
 
            init3D();
        }
 
        // _______________________________________________________________________
        //                                                                  Init3D
        private function init3D():void
        {
            //コンテナ生成
            this.container = new Sprite();
            addChild(this.container);
            this.container.x = this.stage.stageWidth  / 2;
            this.container.y = this.stage.stageHeight / 2;
 
            //シーン生成
            scene = new Scene3D( container );
 
            //カメラ設定
            camera = new Camera3D();
            camera.z = 0;
            camera.focus = 500;
            camera.zoom = 1;
 
            //Starsオブジェクト生成
            starObj = scene.addChild( new Stars( new ColorMaterial(0xffffff), container ) );
        }
 
        // _______________________________________________________________________
        //                                                                    Loop
        private function loop3D( event:Event ):void
        {
            //マウス座標でカメラ移動
            valx += this.container.mouseX / 50;
            valy += this.container.mouseY / 50;
            starObj.rotationY = valx;
            starObj.rotationX = valy;
 
            //レンダリング
            this.scene.renderCamera( camera );
        }
 
        // _______________________________________________________________________
        //                                                           onStageResize
        private function onStageResize(event:Event):void
        {
            this.container.x = this.stage.stageWidth  / 2;
            this.container.y = this.stage.stageHeight / 2;
        }
 
    }
}

Trackback URL : http://blog.r3c7.net/as3-software-rendering/61/trackback/

Leave a Reply