Safe remove

    public static function safeDestroy (obj:Dynamic, ?destroy:Bool=true) :Bool {
        if (obj == null) return false;
        var objs :Array<Dynamic> = (obj, Array) ? obj : [obj];
        for (o in objs) {
            if (o == null) continue;
            if (destroy)    try { o.destroy(); }
                            catch (e:Dynamic) { trace("[Error on object: "+o+", {"+e+"}"); }
            var parent = null; try { parent = o.parent; } catch (e:Dynamic) { trace(e); }
            if (parent != null) parent.removeChild ( o );
        return true;
    public static function safeRemove (obj:Dynamic) :Bool {
        return safeDestroy (obj, false);

One function that will make the job of removing/destroying objects from stage shorter. You can pass an object or an array of objects without checking if they are instantiated. If you call safeDestroy a function named destroy will be safely called in each object.
Hope to be helpful, this is my most used static function.
version #6772, modified 2009-08-18 22:44:35 by cristibaluta