[Papervision3D] [REV 238] BitmapFileMaterial : changed IOErrorEvent to FileLoadEvent.LOAD_ERROR

Tim Knip tim.knip at gmail.com
Sun Sep 2 16:49:41 PDT 2007


Instead of flash.events.IOErrorEvent now FileLoadEvent.LOAD_ERROR is
fired when a bitmap fails to load.

usage:

material = new BitmapFileMaterial( path );
material.addEventListener( FileLoadEvent.LOAD_COMPLETE,
materialCompleteHandler );
material.addEventListener( FileLoadEvent.LOAD_ERROR, materialErrorHandler );

// save the path / materialName so we now we are trying to load
something tricky...
_queuedMaterials[path] = materialName;

private function materialErrorHandler( event:FileLoadEvent ):void
{
     var materialName:String = _queuedMaterials[ event.file ];

    var replacingMaterial:MaterialObject3D = new WireframeMaterial();

    resetMaterials( this, materialName, replacingMaterial );
}

private function resetMaterials( obj:DisplayObject3D,
materialName:String, newMaterial:MaterialObject3D ):void
{
     // remove old
     var existing:MaterialObject3D = materials.getMaterialByName(materialName);
     if( existing )
          obj.materials.removeMaterialByName(materialName);

     // add new
    obj.materials.addMaterial(newMaterial, materialName);

     // recurse children
     for each( var child:DisplayObject3D in obj.children )
          resetMaterials( child, materialName, newMaterial );
}

Or something alike :)

Tim



More information about the Papervision3D mailing list