![]() |
|
||||||||||
|
|||||
|
[+1 16.07.13]
[+4 16.07.13] Регистрация: Oct 2005
Сообщений: 217
|
Да вот тут и учат во втором посте
http://www.flasher.ru/forum/showthre...E8%EA%EB%EE%EC |
|
|||||
|
Регистрация: Feb 2012
Сообщений: 205
|
Цитата:
for(var i:int = 1; i<bt.length;i++) { addChild(bt[i]); bt[i].addEventListener(MouseEvent.CLICK, loadMC); function loadMC(e:MouseEvent):void { var currentNumber:int; for(var i:int = 1; i<bt.length; i++) {removeChild(pg[i]);//необходимо удалить все подгруженные мувики if(e.currentTarget.name == ['bt'+i]) {currentNumber = i;} }; addChild(pg[currentNumber])//и добавить тот, который соответствует нажатой кнопке } } |
|
|||||
|
буду краток
модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
|
Ошибочка вышла. не getDefinition, а getDefinitionByName. зарапартовался.
__________________
Отряд Котовскага |
|
|||||
|
Функции никогда не вкладывайте никуда. Они всегда должны быть отдельно. А у вас функция обьявлена в цикле.
Обычно эта ошибка возникает когда вы пытаетесь удалить родительский элемент, вызывая removeChild у ребенка. Если так и есть, пробуйте вызвать removeChild у того обьекта, ребенком которого он на самом деле является. Если это главная линия времени, то (root as MovieClip).removeChild(); |
|
|||||
|
Регистрация: Feb 2012
Сообщений: 205
|
Цитата:
кто у меня материнский объект для моего pg? |
|
|||||
|
Наследование это нечто другое. А здесь просто стоит понять иерархию DisplayList.
У вас, допустим, есть мувиклип на главной линии времени. В нем вы хотите удалить его самого со сцены. Пишите интуитивно removeChild(this), и выскакивает подобная ошибка. А все потому, что в списке отображения данного обьекта нет еще одного элемента с таким же именем экземпляра. На самом деле этот обьект находится на главной линии времени, и, чтобы удалить его, мы должны обратиться к ней. (root as MovieClip).removeChild(this); |
|
|||||
|
Регистрация: Feb 2012
Сообщений: 205
|
всё равно не понимаю.
Если я просто делала то как мне его теперь удалять? removeChild(pg);, (root as MovieClip).removeChild(pg); и parent.removeChild(pg)- выдаёт ошибку Parameter child must be non-null. ошибка The supplied DisplayObject must be a child of the caller перестала появляться |
|
|||||
|
Вы в том же символе делали addChild(pg)?
Обратитесь к тому символу, где вы делали addChild(pg); Добавлено через 2 минуты И не забудьте, что pg в том символе != pg в этом символе, а значит, если addChild(pg); там, то и обращение туда же должно происходить. theSymbol.removeChild(theSymbol.pg); Добавлено через 16 минут Меня вдруг осенило. Эта же ошибка вылазит, когда обьекта и так нет на сцене, а вы его пытаетесь удалять. Добавлено через 36 минут Цитата:
На вашем месте, я бы создал пустой символ в библиотеку, и делал бы addChild в него. а там, где нужно, я бы чистил его полностью. Добавлено через 46 минут В этом символе описать метод clear(): while(numChildren > 0) { removeChildAt(0); } И вызывать этот метод вместо removeChild(...[i]); |
|
|||||
|
Регистрация: Feb 2012
Сообщений: 205
|
здесь же, в основном таймлайне и создаю, никаких уровней не добавляю.
решение найдено! и не надо искать и мучиться =) |
![]() |
![]() |
Часовой пояс GMT +4, время: 01:20. |
|
|
« Предыдущая тема | Следующая тема » |
|
|