package { import org.papervision3d.materials.MovieMaterial; import org.papervision3d.materials.utils.MaterialsList; import org.papervision3d.objects.DisplayObject3D; public class ApplicationManager { protected static var instance:ApplicationManager = null; protected var mesh:MeshObject = null; protected var materials:MaterialsList = null; public static function get Instance():ApplicationManager { if (instance == null) instance = new ApplicationManager(); return instance; } public function ApplicationManager() { } public function startupApplicationManager():void { // create a model to render to the screen materials = new MaterialsList(); materials.addMaterial(ResourceManager.SF02_Tex, "sf-01"); mesh = new MeshObject().startupModelObject(ResourceManager.Fighter1XML, materials); } public function shutdown():void { mesh.shutdown(); } public function set shipMaterial(material:MovieMaterial):void { for each (var child:DisplayObject3D in mesh.model.children) mesh.model.setChildMaterialByName(child.name, material); } } }