diff --git a/src/as/com/threerings/flash/LoaderUtil.as b/src/as/com/threerings/flash/LoaderUtil.as new file mode 100644 index 00000000..d31838ed --- /dev/null +++ b/src/as/com/threerings/flash/LoaderUtil.as @@ -0,0 +1,35 @@ +// +// $Id$ + +package com.threerings.flash { + +import flash.display.Loader; + +/** + * Contains a utility method for safely unloading a Loader. + */ +public class LoaderUtil +{ + /** + * Safely unload the specified loader. + */ + public static function unload (loader :Loader) :void + { + try { + loader.close(); + } catch (e1 :Error) { + // ignore + } +// try { +// loader.unloadAndStop(); +// } catch (e2 :Error) { + // hmm, maybe they are using FP9 still + try { + loader.unload(); + } catch (e3 :Error) { + // ignore + } +// } + } +} +} diff --git a/src/as/com/threerings/flash/MediaContainer.as b/src/as/com/threerings/flash/MediaContainer.as index a49db0f3..350a99f2 100644 --- a/src/as/com/threerings/flash/MediaContainer.as +++ b/src/as/com/threerings/flash/MediaContainer.as @@ -328,16 +328,7 @@ public class MediaContainer extends Sprite removeListeners(loader.contentLoaderInfo); // dispose of media - try { - loader.close(); - } catch (ioe :IOError) { - // ignore - } - try { - loader.unload(); - } catch (e :Error) { - // ignore - } + LoaderUtil.unload(loader); dispatchEvent(new Event(Event.UNLOAD)); removeChild(loader);