チェンジセット 330

差分発生行の前後
無視リスト:
コミット日時:
2008/04/21 18:41:58 (4 年前)
コミッタ:
Mk-10
ログメッセージ:

Metasequoia に勝手に機能追加
nondelion さんが BMP を読めるようにしていたので本体自体も修正してみたよ

ファイル:

凡例:

変更無し
追加
削除
更新
コピー
移動
  • as3/Metasequoia/src/org/libspark/pv3d/Metasequoia.as

    r233 r330  
    5050        import org.papervision3d.materials.utils.MaterialsList; 
    5151        import org.papervision3d.objects.DisplayObject3D; 
    52          
     52 
     53        import com.voidelement.images.BMPDecoder;        
    5354        /** 
    5455        * メタセコイアのファイル(.mqo)を読み込むためのクラス。 
     
    198199                                        if (tex.toLowerCase().search(/\.tga$/) != -1) { 
    199200                                                material = loadTGAMaterial(path + tex); 
     201                                        } else if (tex.toLowerCase().search(/\.bmp$/) != -1) { 
     202                                                material = loadBMPMaterial(path + tex); 
    200203                                        } else { 
    201204                                                // テクスチャの URL を絶対にして読み込む 
     
    249252                } 
    250253                 
     254                private function loadBMPMaterial(url:String):BitmapMaterial 
     255                { 
     256                        var material:BitmapMaterial = new BitmapMaterial(); 
     257                        var loader:URLLoader = new URLLoader(); 
     258                        loader.dataFormat = URLLoaderDataFormat.BINARY; 
     259                        loader.addEventListener(Event.COMPLETE, function(event:Event):void { 
     260                            var bmpLoader:URLLoader = event.target as URLLoader; 
     261                            var decoder:BMPDecoder = new BMPDecoder(); 
     262                            material.bitmap = decoder.decode(bmpLoader.data); 
     263                            material.maxU = material.maxV = 1; 
     264                            material.resetMapping(); 
     265                        }); 
     266                        loader.load(new URLRequest(url)); 
     267                        return material; 
     268                } 
     269                 
    251270                private function materialLoadCompleteHandler(evt:FileLoadEvent):void { 
    252271                        _materialsToLoad--;