- ベストアンサー
Flash CS4体験版でpapervision3Dを試すがコンパイルエラーが出る
- AS3.0を勉強しようと思い、CS4の体験版をインストールしました。Tweenerを試したりAS2.0との違いなど勉強しているところです。
- 今回困っているのはpapervision3Dでのコンパイルエラーです。Public Beta 2.0 - Great White というバージョンをダウンロードし、/ユーザー/classes/org/papervision3d に配置し、クラスパス設定しました。環境はMac OS X です。
- エラーメッセージがいくつか表示されており、他のサンプルでも同じようなエラーが出ます。原因や解決方法がわからず困っています。お助けいただけると幸いです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
おそらく、あなたがダウンロードしたPapervision3Dと サンプル(http://www.thinkit.co.jp/images/article/91/3/9131.zip) で使われているPapervision3Dのバージョンが違います。 そのサンプルは古いバージョンのPapervision3Dが使われています。 最新のPapervision3Dとは大幅に変更されています。 最新のPapervision3D(Revision 858)では Scene3Dは引数なしのコンストラクタしか定義されていません。 OldCubeはなく、Cubeしかありません。 そのサンプルがどういうものか知りませんが、Cubeを表示するだけのものなら、以下のようにすればできます。 package { import flash.display.*; import flash.events.*; //Papervision3Dで使うクラスをインポート import org.papervision3d.cameras.*; import org.papervision3d.materials.*; import org.papervision3d.materials.utils.*; import org.papervision3d.objects.primitives.*; import org.papervision3d.render.*; import org.papervision3d.scenes.*; import org.papervision3d.view.*; //メインクラス public class HelloCube extends Sprite { private var scene:Scene3D; //シーン(3D空間) private var camera:Camera3D; //カメラ private var viewport:Viewport3D; //ビューポート private var renderer:BasicRenderEngine //描画エンジン private var cube:Cube //立方体 public function HelloCube() { //シーン(3D空間)の生成 scene = new Scene3D(); //カメラの生成 camera = new Camera3D(); //カメラの設定 camera.x = camera.y = 0; camera.z = -1000; camera.focus = 100; //focus×zoom分、オブジェクトから離れている場合 camera.zoom = 10; //画面に同じ大きさで描画される //ビューポートの生成 viewport = new Viewport3D(600, 400); //画面にビューポートを追加 this.addChild(viewport); //描画エンジンの生成 renderer = new BasicRenderEngine(); //Cube(立方体)の生成 //マテリアルリストの生成 var materialsList:MaterialsList = new MaterialsList(); materialsList.addMaterial(new ColorMaterial(0xFF0000),"front"); materialsList.addMaterial(new ColorMaterial(0x00FF00),"back"); materialsList.addMaterial(new ColorMaterial(0x0000FF),"right"); materialsList.addMaterial(new ColorMaterial(0xFFFF00),"left"); materialsList.addMaterial(new ColorMaterial(0xFF00FF),"top"); materialsList.addMaterial(new ColorMaterial(0x00FFFF),"bottom"); //マテリアルリストを元にCubeを生成 cube = new Cube(materialsList,100,100,100,2,2,2); //Cubeをsceneに追加 scene.addChild(cube); //毎フレームの描画処理メソッドを登録 stage.addEventListener(Event.ENTER_FRAME, drawPapervision3d); } //毎フレームの描画 private function drawPapervision3d(e:Event):void { //Cubeを回転 cube.rotationX += 1; cube.rotationY += 1; cube.rotationZ += 1; //cameraから見たsceneをviewportに描画 renderer.renderScene(scene, camera, viewport); } } }
お礼
studentE5T様ありがとうございます。 studentE5T様のCube表示スクリプトを試したところエラーは無く、Cubeが表示されました!感動です! サンプルがコンパイルエラーになるのはバージョンによるものだったんですね。。気づきませんでした。 また、大きく変更されたという事なので、これから勉強していく自分としては 古いバージョンでまず慣れた方がよいのか、新しいバージョンからやっていった方がよいのか判断が難しいですね。 ネットに転がっているサンプルの多くが新しいバージョンで書き出せないのは辛いですね。