Да млииииин, ну как же еще объяснить... ну абсолютно все равно что бы не возвращал dispose() к условию в if() это вообще отношения не имеет! При чем тут универсальность кода!? Я уже объяснил зачем там этот if.
Вот нашел какой-то промежуточный вариант кода, надеюсь, это как-то поможет понять зачем это было нужно...

Код AS1/AS2:
public function createAlert(alertType:String, o:Object, removePrevious:Boolean):SForm
{
if (!removePrevious) _abase.removeMovieClip();
else _backSteps++;
_abg.removeMovieClip();
/*if (_screenCapture) _screenCapture.dispose();
_screenCapture = new BitmapData(Stage.width, Stage.height);
_screenCapture.draw(_root);
_screenCapture.applyFilter(_screenCapture, new Rectangle(0, 0, Stage.width, Stage.height),
new Point(0, 0), new BlurFilter(4, 4, 1));
_abg = GFX.grid(_root, Stage.width, Stage.height, _screenCapture);*/
_abg = GFX.rct0000(_root, Stage.width, Stage.height, GFX.WHITE, 30);
_abg.onRelease = function():Void {};
_abg.useHandCursor = false;
_abase = _root.createEmptyMovieClip("abase" + _root.getNextHighestDepth(), _root.getNextHighestDepth());
var ssubj:String = alertType;
var isErr:Boolean;
switch(alertType)
{
case "404":
case SForm.TEXT_ALERT:
isErr = false;
break;
default:
isErr = true;
}
var rect:Rectangle = new Rectangle(0, 0, 220, 220);
switch (String(o))
{
case FilterObject.BLUR:
rect.height = 140;
break;
case FilterObject.GLOW:
rect.height = 195;
rect.width = 226;
break;
case FilterObject.DROP_SHADOW:
rect.height = 180;
rect.width = 340;
break;
case FilterObject.BEVEL:
rect.height = 210;
rect.width = 345;
break;
case EffectObject.IRIS:
rect.height = 225;
rect.width = 225;
break;
case EffectObject.FADE:
case EffectObject.FLY:
case EffectObject.ZOOM:
rect.height = 195;
rect.width = 175;
break;
}
switch (alertType)
{
case SForm.CONFIRM:
rect.height = 120;
rect.width = 260;
break;
}
var fprops:FillProps = new FillProps(FillProps.FILL_FLAT, [100], [], [GFX.WHITE]);
var lprops:LineProps;
var style:String;
if (!isErr)
{
lprops = new LineProps(1, GFX.DARK_RED, 100, true);
style = "err";
} else {
lprops = new LineProps(1);
style = "alert";
}
var vprops:MCProps = new MCProps(fprops, lprops, 10, false);
var _box:SBox = new SBox(_abase, rect, vprops);
_box.isAlert = true;
_box.setStyle(style);
switch (alertType)
{
case SForm.PALETTE:
_box.setForm(SForm.PALETTE);
_box.lable = "Choose Color";
break;
case SForm.FONT_SELECTOR:
_box.setForm(SForm.FONT_SELECTOR);
_box.lable = "Choose Typeface";
break;
case SForm.TRIM:
_box.setForm(SForm.TRIM, _timeline.step, _timeline.aSlide);
_box.lable = "Trim track";
break;
case SForm.TEXT_ALERT:
_box.setForm(SForm.TEXT_ALERT, Number(o));
_box.lable = "Warning";
break;
case "404":
_box.setForm("_404", 0, arguments[1]);
_box.lable = "Resource not found";
break;
case SForm.EFFECT:
_box.setForm(SForm.EFFECT, 0, o);
_box.lable = o + " Properties";
break;
case SForm.FILTERS:
_box.setForm(SForm.FILTERS, 0, o);
_box.lable = o + " Filter Properties";
break;
case SForm.CONFIRM:
_box.setForm(SForm.CONFIRM, 0, o);
_box.lable = "Confirm";
break;
default:
throw new ERR("no such alert: "+alertType, this);
break;
}
_box.name = alertType + _forms.length;
_inactiveForm = _broadcastingForm;
_broadcastingForm = _box.getForm();
if (!removePrevious)
{
_box.x = Math.round(Stage.width/2 - _box.w/2);
_box.y = Math.round(Stage.height/2 - _box.h/2);
} else {
_box.x = Math.round(Stage.width/2);
_box.y = Math.round(Stage.height/2);
}
_forms.push(_box);
_box.getBackGround().filters = [new DropShadowFilter(5, 45, 0, .4, 6, 6, 1, 1)];
keepOnTop();
dispatchEvent(new FormManagerEvent(FormManagerEvent.FORM_OPEN, _box.getForm()));
return _box.getForm();
}
public function deleteAlert(frm:SForm):Void
{
var del:SBox;
var i:Number;
var l:Number = _forms.length;
for (i = 0; i < l; i++)
{
if (_forms[i].getForm() == frm)
{
del = SBox(_forms.splice(i, 1)[0]);
}
}
if (!del) del = SBox(_forms.pop());
dispatchEvent(new FormManagerEvent(FormManagerEvent.FORM_CLOSE, del.getForm()));
del.deleteContent();
delete del;
if (_backSteps > 1)
{
_inactiveForm = _forms[_forms.length - _backSteps].getForm();
_backSteps--;
_broadcastingForm = _forms[_forms.length - _backSteps].getForm();
_forms[_forms.length - _backSteps].swapTo(_abg);
} else {
delete _abg.onRelease;
_abg.removeMovieClip();
_broadcastingForm = _inactiveForm;
}
if (_screenCapture) _screenCapture.dispose();
_screenCapture = null;
}