• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Flash CS4体験版でpapervision3Dを試すがコンパイルエラーが出る)

Flash CS4体験版でpapervision3Dを試すがコンパイルエラーが出る

このQ&Aのポイント
  • AS3.0を勉強しようと思い、CS4の体験版をインストールしました。Tweenerを試したりAS2.0との違いなど勉強しているところです。
  • 今回困っているのはpapervision3Dでのコンパイルエラーです。Public Beta 2.0 - Great White というバージョンをダウンロードし、/ユーザー/classes/org/papervision3d に配置し、クラスパス設定しました。環境はMac OS X です。
  • エラーメッセージがいくつか表示されており、他のサンプルでも同じようなエラーが出ます。原因や解決方法がわからず困っています。お助けいただけると幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.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); } } }

tkmkok
質問者

お礼

studentE5T様ありがとうございます。 studentE5T様のCube表示スクリプトを試したところエラーは無く、Cubeが表示されました!感動です! サンプルがコンパイルエラーになるのはバージョンによるものだったんですね。。気づきませんでした。 また、大きく変更されたという事なので、これから勉強していく自分としては 古いバージョンでまず慣れた方がよいのか、新しいバージョンからやっていった方がよいのか判断が難しいですね。 ネットに転がっているサンプルの多くが新しいバージョンで書き出せないのは辛いですね。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • Flash papervision3D

    初めて質問させて頂きます。よろしくお願いします。 このたびFlashProfessional CS5でpapervisionを使用して3Dの勉強を始めました。 そこで、papervisionについての基本事項を学べたり、また、良いサンプルコードが掲載されているサイトなどが御座いましたら教えて頂けないでしょうか? 取り敢えずの目標として、地面と遠景の空、そしてテクスチャ付きのいくつかのオブジェクトをシーンに配置し、その空間を移動する、という感じの所まで作ってみたいと思っています。 また、先日papervision2.1をダウンロードしたのですが、バージョンの異なるサンプルコードはそのままではコンパイルできない、あるいは意図した動作にならない等のバージョン間での互換性に問題はないでしょうか? どなたかアドバイス頂けましたら幸いです。

    • ベストアンサー
    • Flash
  • コンパイルエラー

    //test.cpp #include<iostream> #include<string> class test { string hoge; public: test(string str); void method() const; } 14行目  test::test(string str) : test(hoge){} void test::method() const { std::cout << "test" << std::endl; } int main() { string s; std::cout << "名前を入力してください。" << std::endl; std::cin >> s; test aaa(s); aaa.method(); } コンパイルしようとすると下記エラーになります。 エラー E2303 test.cpp 7: 型名が必要 エラー E2139 test.cpp 7: 宣言に ; がない エラー E2293 test.cpp 10: ) が必要 エラー E2147 test.cpp 14: 引数宣言は 'string' で始められない エラー E2111 test.cpp 14: ここでは型 'test' は定義できない エラー E2136 test.cpp 14: コンストラクタには戻り型は指定できない エラー E2316 test.cpp 14: 'test::test(int)' は 'test' のメンバーではない エラー E2451 test.cpp 22: 未定義のシンボル string(関数 main() ) エラー E2379 test.cpp 22: ステートメントにセミコロン(;)がない(関数 main() ) エラー E2451 test.cpp 24: 未定義のシンボル s(関数 main() ) *** 10 errors in Compile *** ■1.型名が必要 →string hoge;と宣言してる箇所でエラー発生。 …stringと宣言してるのになぜでしょうか… ■2.宣言に";"がない →string hoge;と宣言してる箇所でエラー発生。 …";"つけてるのですが… ■3.")"が必要 →test(string str);の行でエラー発生。 …")"はどこで必要なのでしょうか ■4.引数宣言はstringでははじめられない →test::test(string str) : test(hoge){}の行でエラー発生。 …C++って引数をstringで受け取れない…?どういうことでしょうか などなど疑問がいっぱいあるのですが、どこが間違っているのかよくわかりません…ご指導よろしくお願いします。

  • Flash初心者です。

    Flash初心者です。 以下のコードでは、1120:未定義のプロパティ_cubeへのアクセスです。というエラーが出ます。 ネットで調べてみたところ変数の定義がされていない時のエラーなのは分かったんですが、var _cube:Cube = new Cubeの部分では不足なのでしょうか?環境はFlashCS5です。 package { import flash.events.*; import org.papervision3d.objects.primitives.*; import org.papervision3d.view.*; import org.papervision3d.materials.*; import org.papervision3d.materials.utils.*; public class Box extends BasicView { public function Box() { var material:WireframeMaterial = new WireframeMaterial(0x2288CC); var materials:MaterialsList = new MaterialsList({all:material}); var _cube:Cube = new Cube(materials,500,500,500); scene.addChild(_cube); startRendering(); addEventListener(Event.ENTER_FRAME, loop); } private function loop(e:Event):void { _cube.rotationY += 2; } } }

    • ベストアンサー
    • Flash
  • コンパイルエラー

    error C2143: 構文エラー : ';' が '__stdcall' の前にありません。 error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません error C2440: '初期化中' : 'int (__stdcall *)(HWND,UINT,WPARAM,LPARAM)' から 'WNDPROC' に変換できません。 というエラーが出て困っています。 ご教授お願いします。 使用参考書:15歳からはじめる DirectX9 3Dゲームプログラミング教室 使用環境:Microsoft Visual C++ 2008 Express Edition SP1        DirectX SDK(dxsdk_feb2007)        Microsoft Platform SDK(たぶん最新版) ソース: http://gemuwotukurou.web.fc2.com/d3d/d3dtest.zip よりダウンロードしてください。

  • [Visual C++ 6.0] コンパイル(ビルド)エラー

    ※参考までに『3週間完全マスターVisual C++ 6.0 』という本の「5日目」の部分を進めていて詰まってしまいました。 ビルドすると、下記のDialogsDlg.h中の「CMsgDlg m_dMsgDlg;」の辺りに対して error C2146: 構文エラー : ';' が、識別子 'm_dMsgDlg' の前に必要です。 error C2501: 'CMsgDlg' : 識別名を宣言するのに、型が指定されていません。 error C2501: 'm_dMsgDlg' : 識別名を宣言するのに、型が指定されていません。 というエラーが出てしまいます。CMsgDlgというクラスはちゃんと作っていますし、構文的にも間違ってはいないと思うのですが、何がいけないのでしょうか? 説明が足りなければ補足します(見づらくてスミマセン)。 // DialogsDlg.h : #if !defined(AFX_DIALOGSDLG_H__4772C7E5_F2C9_4E57_99B8_EF1D44426473__INCLUDED_) #define AFX_DIALOGSDLG_H__4772C7E5_F2C9_4E57_99B8_EF1D44426473__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif class CDialogsDlg : public CDialog { public: CDialogsDlg(CWnd* pParent = NULL); enum { IDD = IDD_DIALOGS_DIALOG }; CButton m_cWhichOption; CString m_sResults; protected: virtual void DoDataExchange(CDataExchange* pDX); protected: HICON m_hIcon; //{{AFX_MSG(CDialogsDlg) virtual BOOL OnInitDialog(); afx_msg void OnSysCommand(UINT nID, LPARAM lParam); afx_msg void OnPaint(); afx_msg HCURSOR OnQueryDragIcon(); afx_msg void OnExit(); afx_msg void OnYesnocancel(); afx_msg void OnAbortretryignore(); afx_msg void OnFileopen(); afx_msg void OnBcustomdialog(); afx_msg void OnBwhichoption(); //}}AFX_MSG DECLARE_MESSAGE_MAP() private: CMsgDlg m_dMsgDlg; }; #endif

  • javaで3Dを作りたいんですが、コンパイルしたときに

    javaで3Dを作りたいんですが、コンパイルしたときに FirstApplet.java:5: com.sun.j3d.utils.applet.MainFrame にアクセスできません。 クラスファイル C:\j2sdk1.4.2_14\jre\lib\ext\j3dutils.jar(com/sun/j3d/utils/applet/MainFrame.class) は不正です。 クラスファイルのバージョン 49.0 は不正です。48.0 であるべきです。 削除するか、クラスパスの正しいサブディレクトリにあるかを確認してください。 import com.sun.j3d.utils.applet.MainFrame; とエラーが出てしまい、実行できません。 環境 Windows Vista 使用ソフト J2SE Development kit 5.0 J2SE Runtime Environment 5.0 Java 2 Runtime Environment,SE v1.4.2_14 Java 2 SDK,SE v1.4.2_14 Java 3D 1.5.1 CPad for Java2 SDK 2.31 これの直し方知ってる人がいましたら教えてください。

  • EclipseでJSPのコンパイルエラー

    過去に開発したWebアプリをEclipseを使用して再開発し直してみようと挑戦中ですが、以下のエラーが解決できず困っています。 ***** org.apache.jasper.JasperException: JSPのクラスをコンパイルできません JSPファイル: null の中の行: -1でエラーが発生しました 生成されたサーブレットのエラーです: [javac] Compiling 1 source file E:\AddProgram\Eclipse\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Standalone\localhost\XXX\login_jsp.java:10: java.lang.Object にアクセスできません。 クラスファイル E:\AddProgram\Eclipse\eclipse\jre\lib\rt.jar(java/lang/Object.class) は不正です。 クラスファイルのバージョン 49.0 は不正です。48.0 であるべきです。 削除するか、クラスパスの正しいサブディレクトリにあるかを確認してください。 public class login_jsp extends HttpJspBase { ^ エラー 1 個 ***** Javaビルドパス-クラスパス変数は j2sdk1.4.2\jre\lib\rt.jarになっているし、 Javaコンパイラーの準拠レベルは1.4になっているし、 JAVA_HOMEやPATHもj2sdk1.4.2、j2sdk1.4.2\binになっているんですが、何故別のjarを参照してしまっているのでしょうか? Eclipseの再起動、JRE1.4.2の再インストールなども試みましたが、解決せず悩んでいます。解決方法をご存知の方、ご教授ください。 ■環境(最終的に落ち着いた使用バージョンは以下の通り。) ・EclipsePleiadesAllinOneJava3_4_2 ・java 1.4.2 ・Tomcat 4.1.31 ・Apache 2.0.53 ・MySQL 4.0.25

    • ベストアンサー
    • Java
  • このソースがコンパイルエラーになってしまいます

    このソースのどこがわるいのかわかりません エラー時にこのようなエラーメッセージが出ます In function `writedata': 52: error: syntax error before string constant 65: error: syntax error before string constant 89:2: warning: no newline at end of file ソースはこれです #include <stdio.h> #include <string.h> #include <time.h> typedef struct { int day; double dist; char comment[32]; } diary; void writedata(char datafile[]); void viewdata(char datafile[]); char datadir[] = "dat/"; int year,month,day; int main(int argc,char *argv[]) { char datafile[11]; struct tm *date; time_t now; now = time(NULL); date = localtime(&now); year = date->tm_year + 1900; month = date->tm_mon + 1; day = date->tm_mday; sprintf(datafile,"walk%04d%02d",year,month); if((argc > 1) && (strcmp(argv[1],"-view")==0)) { viewdata(datafile); } else { writedata(datafile); } return 0; } void writedata(char datafile[]) { diary today_data; FILE *outfp; char y_n = 'n'; char filename[15]; char input_str[12]; printf("%d/%d/%dの記録をしますか?(y/n) > ",year,month,day); scanf("%c", &y_n); while(getchar() != '\n') { } if(y_n != 'y') { printf("記録する日付は?(例:%d %d %d) > ",year,month,day); year = 0; month = 0; day = 0; gets(input_str); sscanf(input_str"%d %d %d",&year,&month,&day); if((year > 9999) || (month > 12) || (month < 1) || (day > 31)|| (day < 1)) { printf("日付が正しくありません\n"); return; } sprintf(datafile,"walk%04d%02d",year,month); } today_data.day = day; printf("距離は? >"); scanf("%lf", &today_data.dist); while(getchar() != '\n') { } printf"コメントは?(30文字以内) >"); fgets(today_data.comment, 32, stdin); if((strlen(today_data.comment) == 31) && (today_data.comment[30] != '\n')) { while (getchar() != '\n') { } } sprintf(filename, "%s%s",datadir,datafile); if((outfp = fopen(filename,"a+")) == NULL) { printf("ファイルオープンエラー\n"); return; } fprintf(outfp , "%d %.2lf", today_data.day,today_data.dist); if((strlen(today_data.comment) == 31) && (today_data.comment[30] != '\n')) { today_data.comment[30] = '\n'; today_data.comment[31] = '\0'; } fprintf(outfp,"%s",today_data.comment); fclose(outfp); printf("記録しました"); } void viewdata(char datafile[]) { } なぜ、エラーになったか教えてくださいお願いします

  • C言語 どこがコンパイルエラーか解りません。

    いつも大変お世話になっております。 標記の件。 どこがエラーなのか解りません。 2時間くらい、にらめっこが続いています。 どこがエラーなのか教えて下さい。 ご回答のほどよろしくお願い申し上げます。 コード #include <stdio.h> int a = 0; void func(void) { int c = 2; printf("func関数では変数aとcが使えます。¥n”); printf("変数aの値は%dです。\n",a); /*printf("変数bの値は%dです。\n",b);*/ printf("変数cの値は%dです。\n",c); } int main(void) { int b = 1; printf("main関数では変数aとbが使えます。\n"); printf("変数aの値は%dです。\n", a); printf("変数bの値は%dです。\n", b); /*printf("変数cの値は%dです。\n", c); */ func(); return 0; } コンパイルエラー printf("func関数では変数aとcが使えます。¥n”); ^ text10.c:9:8: error: missing terminating " character printf("func関数では変数aとcが使えます。¥n”); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ text10.c:10:34: error: expected ')' before ';' token printf("変数aの値は%dです。\n",a); ^ text10.c:10:1: warning: passing argument 1 of 'printf' makes pointer from integer without a cast [-Wint-conversion] printf("変数aの値は%dです。\n",a); ^~~~~~ In file included from text10.c:1:0: c:\mingw\include\stdio.h:454:38: note: expected 'const char *' but argument is of type 'int' _CRTIMP __cdecl __MINGW_NOTHROW int printf (const char *, ...); ^~~~~~ text10.c:13:1: error: expected ';' before '}' token } どうかよろしくお願いいたします。

  • JDialog でコンパイルエラーになります

    環境:WindowsXP,j2sdk1.4.0 Javaを勉強しているのですが、swingクラスのJDialog ,Jwindowを使用するとコンパイルエラーになります。 (JFrameの場合は、問題なく表示されます) ソースとエラー内容は以下の通りです。 ・ソース import java.awt.*; import java.awt.event.*; import javax.swing.*; class JDialog{ public static void main(String [] args) { JDialog jd =new JDialog(); jd.setBounds(0, 0, 200, 100); jd.setTitle("JDialog Example"); jd.getContentPane(). setBackground(Color.green); jd.addWindowListener(new MyWindowAdapter()); jd.setVisible(true); } } ・エラー内容 JDialog.java:12: シンボルを解釈処理できません。 シンボル: メソッド setBounds (int,int,int,int) 位置 : JDialog の クラス jd.setBounds(0, 0, 200, 100); ^ JDialog.java:13: シンボルを解釈処理できません。 シンボル: メソッド setTitle (java.lang.String) 位置 : JDialog の クラス jd.setTitle("JDialog Example"); ^ JDialog.java:15: シンボルを解釈処理できません。 シンボル: メソッド getContentPane () 位置 : JDialog の クラス jd.getContentPane().setBackground(Color.green); ^ JDialog.java:16: シンボルを解釈処理できません。 シンボル: メソッド addWindowListener (MyWindowAdapter) 位置 : JDialog の クラス jd.addWindowListener(new MyWindowAdapter()); ^ JDialog.java:18: シンボルを解釈処理できません。 シンボル: メソッド setVisible (boolean) 位置 : JDialog の クラス jd.setVisible(true); ^ エラー 5 個 誰か、助けてください!

    • ベストアンサー
    • Java