[AS]progression PRMLLoaderクラスで、Error #1065: 変数 IndexScene は定義されていません。が出たときの対処法
PRMLLoaderクラスは、xml形式のデータを外部読み込みすることで、progressionのシーン構成を生成するクラスでちょっとはまったのでメモ。
PRMLLoaderクラスの使い方は、ProgressionによるFlashコンテンツ開発ガイドのp268に分かりやすく書いてあるのでその通りにならって実行したつもりが、題記エラーが表示されました。。。
だがしかし、書籍のサンプルファイルをダウンロードしてみるとちゃんとできてる。
書籍サンプルファイルと自分のプロジェクトの差異はなんなんだ?
とひと晩結果が、xmlでのクラスファイル(cls属性)の指定が間違っていました。
まずは、OK
(問題なしの書籍のサンプルは以下の画像のようなプロジェクト構成)
※xmlはいずれも以下の通りとした
<?xml version="1.0" encoding="UTF-8" ?> <prml version="2.0.0" type="text/prml"> <scene name="index" cls="IndexScene"> </scene> </prml>
まずOKのNGの違いは、IndexSceneがパッケージでくるまれてるかくるまれていないか、ということ。
OKは、srcの直下にIndexScenen.asがあるのでパッケージにはくるまれていない。
NGは、srcの直下にあるcsr393pv3dというパッケージでくるまれている。
結論としては、パッケージからのパスをxmlのcls属性に設定することが必要。
srcの直下にあるcsr393pv3dにIndexSceneが含まれた場合は、、
<?xml version="1.0" encoding="UTF-8" ?> <prml version="2.0.0" type="text/prml"> <scene name="index" cls="csr393pv3d.IndexScene"> </scene> </prml>
これで正常に実行される。
つまり、srcからみたパスの構成を、xmlのcls記述に記述する必要がある。
Tweet
2 Comments
ちょうど同じところはハマっておりまして、こちらの記事に救われました。
Progression 本のサンプルでは IndexScene.as が src フォルダ直下にあったため、まさか xml 内の cls 属性が原因だったとは全く気づきませんでした。
どうもありがとうございました!
いえいえー、メモがお役に立ったようで幸いです!