Показать сообщение отдельно
Старый 27.07.2009, 12:52
  № 1  
Ответить с цитированием
Xero201
Guest

Сообщений: n/a
По умолчанию Как динамически удалить Components

Задача в следующем:
На сцене есть клип
Код AS1/AS2:
_root.attachMovie("clip","clip",1000);
В него загружается компонент
Код AS1/AS2:
_root.clip.attachMovie("ComboBox","com1",2100);
Все нормально. Но когда клип нужно удалить
Код AS1/AS2:
_root.clip.removeMovieClip();
Исчезает он только визуально trace(_root.clip) – выводит адрес клипа.
В Хэлпе (ActionScript classes > MovieClip > removeMovieClip (MovieClip.removeMovieClip method) ) примечание: Note: If you are using version 2 components, do not use this method. If you place a version 2 component either on the Stage or in the Library, the getNextHighestDepth() method can sometimes return depth 1048676, which is outside the valid range. If you are using version 2 components, you should always use the version 2 components DepthManager class.
Если я правильно перевел, то это значит, что при вставке Компонента, не следует пользоваться функцией getNextHighestDepth(), т.к. она может назначить глубину, выходящую за допустимые пределы, и removeMovieClip() работать не будет. Но ведь я назначаю глубину обычным присвоением, и все равно не работает.
Там же, был предложен еще один вариант удаления: If you must use getNextHighestDepth() with version 2 components, you can use swapDepths() to assign a valid depth value or use MovieClip.unloadMovie() to remove the contents of the movie clip. Alternatively, you can use the DepthManager class to assign depth values within the valid range.
Но unloadMovie() тоже не помогает.
Подскажите, пожалуйста, как правильно удалить Компонент (или клип с этим компонентом).
PS.
Вставка такого же клипа, на такую же глубину тоже не помогает.