In case Flash no longer exists; a copy of this site is included in the Flashpoint archive's "ultimate" collection.

Dead Code Preservation :: Archived AS3 works from wonderfl.net

3D PV3d VR cube

3D papervision3d VR cube BitmapFileMaterial Security loadPolicyFile 神社
Get Adobe Flash player
by whaison 12 Jan 2011
  • Related works: 1
  • Talk

    whaison at 11 Jan 2011 20:25
    ClockMakerYasuさんのコードをFlickerから読むように書き換えてアップしたよん。
    whaisonTID at 11 Jan 2011 20:36
    ClockMakerYasuさんのコードをFlickerから読むように書き換えてアップしたよん。
    clockmaker at 12 Jan 2011 04:01
    書籍サンプルのご活用ありがとうございます。 すみません、書籍サンプルで利用しているパノラマ写真はカメラマンの著作権があり、著作権フリーとしているわけではありません。そのため、ご自身の flickr アカウントへのアップロードはご遠慮頂けませんか? http://www.flickr.com/photos/57234175@N03/
    whaison at 12 Jan 2011 05:58
    わわわー ごめんなさい。 画像だけ取り急ぎ削除しました。
    clockmaker at 12 Jan 2011 06:07
    お手数をおかけします。ご対応ありがとうございました。
    whaison at 12 Jan 2011 06:57
    画像もデザインし直してまっくらにならないようになおしました。
    whaison at 12 Jan 2011 07:11
    >お手数をおかけします。ご対応ありがとうございました。 いえいえ大変失礼とご迷惑おかけした事をここに お詫びしたいと思います。 今後もよろしくお願いいたします。

    Tags

    Embed
package {
    import flash.display.*;
    import flash.events.*;
    import flash.filters.*;
    import flash.geom.*;
    import flash.system.Security;
    import flash.utils.*;
    import org.papervision3d.cameras.*;
    import org.papervision3d.lights.*;
    import org.papervision3d.materials.*;
    import org.papervision3d.materials.BitmapFileMaterial;
    import org.papervision3d.materials.shadematerials.*;
    import org.papervision3d.materials.utils.*;
    import org.papervision3d.materials.utils.MaterialsList;
    import org.papervision3d.objects.primitives.*;
    import org.papervision3d.view.*;
    public class Main extends BasicView {    
        public function Main() {
            // BasicViewの初期化
            super(0, 0, true, false, CameraType.FREE);
            
            Security.loadPolicyFile("http://farm6.static.flickr.com/crossdomain.xml");
            var materialF:BitmapFileMaterial = new BitmapFileMaterial("http://farm6.static.flickr.com/5243/5347510799_d0616b0611.jpg");//ok
            var materialBK:BitmapFileMaterial = new BitmapFileMaterial("http://farm6.static.flickr.com/5123/5347510701_bf7734d994.jpg");//ok
            var materialR:BitmapFileMaterial = new BitmapFileMaterial("http://farm6.static.flickr.com/5082/5348121034_7ebfcee951.jpg");//ok
            var materialL:BitmapFileMaterial = new BitmapFileMaterial("http://farm6.static.flickr.com/5249/5348120992_689a331d02.jpg");//ok
            var materialT:BitmapFileMaterial = new BitmapFileMaterial("http://farm6.static.flickr.com/5246/5348121060_6b4577dab8.jpg");//ok
            var materialBM:BitmapFileMaterial = new BitmapFileMaterial("http://farm6.static.flickr.com/5169/5347510739_58a054988f.jpg");//ok
   
            
            // カメラを原点に配置
            camera.x = camera.y = camera.z = 0;
            
            // 画質を「低」にして高速化
            stage.quality = StageQuality.LOW;
            
            // マテリアル(立方体の面を作成)
            var materials:MaterialsList = new MaterialsList(
                {
                    front : materialF,
                    back  : materialBK,
                    right : materialR,
                    left  : materialL,
                    top   : materialT,
                    bottom: materialBM
                    /*
                    front : new BitmapFileMaterial( "imgs/f.jpg", true ),
                    back  : new BitmapFileMaterial( "imgs/b.jpg", true ),
                    right : new BitmapFileMaterial( "imgs/r.jpg", true ),
                    left  : new BitmapFileMaterial( "imgs/l.jpg", true ),
                    top   : new BitmapFileMaterial( "imgs/u.jpg", true ),
                    bottom: new BitmapFileMaterial( "imgs/d.jpg", true )
                    */
                });
            
            // キューブを作成
            var cube:Cube = new Cube( materials, 5000, 5000, 5000, 8, 8, 8, Cube.ALL, Cube.NONE );
            scene.addChild(cube);
            
            // マウスのインタラクティブを設定しています
            addEventListener(Event.ENTER_FRAME, loop);
            addEventListener(MouseEvent.MOUSE_WHEEL, wheelHandler);
            
            // レンダリングを開始します
            startRendering();
        }
        
        // マウスの位置に応じてインタラクティブを設定しています
        private function loop(e:Event):void {
            // カメラの目標となる視線方向を計算
            var rotY:Number = 480 * mouseX/(stage.stageWidth);
            var rotX:Number = 180 * mouseY/(stage.stageHeight) - 90;
            // イージングの公式を使ってカメラの値を更新
            camera.rotationY += (rotY - camera.rotationY) * 0.1;
            camera.rotationX += (rotX - camera.rotationX) * 0.1;
        }
        
        // マウスホイールでカメラのズーム値を調整します
        private function wheelHandler(e:MouseEvent):void {
            // ホイールの値をズーム値に加える
            camera.zoom += e.delta / 10;
            // カメラのズーム値は1以下にならないように指定
            if (camera.zoom < 1) camera.zoom = 1;
        }
    }
}