PaperVision3D KMZファイルをメタタグでEmbedする
- 2009 年 3月 12 日
PaperVision2.0で外部の3Dファイルを読み込むには、org.papervision3d.objects.parsersパッケージにあるクラスを使います。たとえばKMZファイルを読み込むなら、KMZクラスのインスタンスを使ってloadメソッドを使って、
load( "fileName.kmz" ) |
のように第一引数にkmzのファイルパスを渡す。
で、この第一引数だけどドキュメントには「URL or ByteArray」を渡すと説明があります。
話は変わってFlash CS4からはメタタグが使えるようになりました。
メタタグってのは、Flex用のソースなんかを見ると一度はみたことある、
[SWF(width=”640″, height=”480″, backgroundColor=”0x000000″, frameRate=”30″)]
のような記述。
ちなみにこれは640×480で背景黒フレームレート30のswfを指定したメタタグ。
こういうメタタグが認識できるようになったと。
以前エントリーしたPixcel Benderを使ったShaderFilterですが、このシェーダーファイルをメタタグを使って埋め込む方法がAdobeのヘルプにあります。
この方法から察するに、上記のKMZファイルもバイナリで埋め込めるんじゃないか思ってやってみたのですが、思惑通り読み込めました。
PaperVision側でByteArrayで渡せる外部ファイルは全部同様にできると思います。
埋め込んだ場合、ファイルサイズが肥大してパブリッシュが毎回重いですが、ローディングの処理とかは楽だと思う。目的に応じてチョイス。
package shuttle{ import org.papervision3d.objects.parsers.KMZ; public class Shuttle extends KMZ{ //EmbedタグでKMZファイルを埋め込み [Embed(source="shuttle_nipx.kmz",mimeType="application/octet-stream")] private var FileClass:Class; public function Shuttle(){ super(); this.load( new FileClass() ); } } } |