dacino
24.11.2006, 01:33
есть такой извратный кусок кода класса-потомка MovieClip, вызывающий критическую ошибку плеера:
import mx.utils.Delegate;
iLab = createClassObject(Label,"iLab"+depth, depth, {_x:0, _y:0, text:"12", autoSize:"left", visible:true});
iLab.onRelease = function(){
this.visible = false;
var iEdit:TextInput = _parent.createClassObject(TextInput,"iEdit"+depth+1, depth+1, {_x:this._x, _y:this._y, text:"12", _width:this._width+5, visible:true});
var destr:Function = Delegate.create(this, edLab);
function remm(){
destr(iEdit);
}
iEdit.addEventListener("focusOut", remm); //при наступлении этого события
//происходит ошибка вырубающая флешовый плеер,
//насколько я понял объект вызвавший неродное событие таким образом грохнуть нельзя
//мув при onRelease можно удалить
}
function edLab(edit:TextInput){
this.visible = true;//depth был неправильный
this.text = edit.text;
edit._parent.destroyObject(edit._name);
}
конечно можно удалять етот iEdit onRelease другого клипа, но так поступать нехочется, дабы не жертвовать универсальностью кода и гимора это принесет немало(чую обратной стороной стула), можно оставить как есть: edit.visible=false, но для чистоты эксперемента охота его всетаки удалить...
дык, товарищи флешеры:
1: в чем я неправ удаляя так объект,
2: может есть другое решение,
3: и в чем причина критической ошибки плеера(понимаю, что в моем коде, а именно -...)?
заранее дьякую, и извеняйте за объемность вопроса
import mx.utils.Delegate;
iLab = createClassObject(Label,"iLab"+depth, depth, {_x:0, _y:0, text:"12", autoSize:"left", visible:true});
iLab.onRelease = function(){
this.visible = false;
var iEdit:TextInput = _parent.createClassObject(TextInput,"iEdit"+depth+1, depth+1, {_x:this._x, _y:this._y, text:"12", _width:this._width+5, visible:true});
var destr:Function = Delegate.create(this, edLab);
function remm(){
destr(iEdit);
}
iEdit.addEventListener("focusOut", remm); //при наступлении этого события
//происходит ошибка вырубающая флешовый плеер,
//насколько я понял объект вызвавший неродное событие таким образом грохнуть нельзя
//мув при onRelease можно удалить
}
function edLab(edit:TextInput){
this.visible = true;//depth был неправильный
this.text = edit.text;
edit._parent.destroyObject(edit._name);
}
конечно можно удалять етот iEdit onRelease другого клипа, но так поступать нехочется, дабы не жертвовать универсальностью кода и гимора это принесет немало(чую обратной стороной стула), можно оставить как есть: edit.visible=false, но для чистоты эксперемента охота его всетаки удалить...
дык, товарищи флешеры:
1: в чем я неправ удаляя так объект,
2: может есть другое решение,
3: и в чем причина критической ошибки плеера(понимаю, что в моем коде, а именно -...)?
заранее дьякую, и извеняйте за объемность вопроса