Друзья, у меня опять затык со списком отображения, и опять далеко за пределами моего понимания.
Имею шкалу, на которую нанесены маркеры, помечающие некие важные уровни свойства, которое отображает шкала. Сам маркер - это оболочка для Bitmap-иконки, которая дополнительно хранит некоторую информацию для более комфортного управления. Помимо прочего, данный класс умеет показывать или скрывать иконку. Например, если уровень по каким-то причинам "уехал" за пределы шкалы, то маркер нужно убрать. И наоборот. За эти операции отвечают методы hideIcon() и showIcon(). Оба простые как грабли, ломаться там нечему в принципе. Вот код:
Код AS3:
// ******* CONSTRUSTOR
public function BarMarker (icon: BitmapIcon)
{
_icon = icon;
}
// ******* INTERNAL METHODS
internal function showIcon () : void
{
if (_icon.parent == this) return;
this.addChild (_icon)
}
internal function hideIcon () : void
{
if (_icon.parent != this) return;
this.removeChild (_icon);
}
На практике происходит следующее. При первом выполнении метода showIcon() маркер корректно появляется на шкале. Но если из объекта-родителя вызвать метод hideIcon(), а затем повторно showIcon(), иконка не отображается. Но даже не это главное! При повторном вызове у меня вообще пропадает с экрана половина элементов. Причём последние - достаточно крупные объекты на несколько ступеней выше по иерархии. И никаким образом не связаны с классом BarMarker - некоторые даже ссылки на него не имеют!
Как такое в принципе возможно?! Я в тупике
Даже не понимаю, куда копать. Буду признателен за любую помощь.