Показать сообщение отдельно
Старый 08.12.2010, 13:11
Lyso вне форума Посмотреть профиль Отправить личное сообщение для Lyso Посетить домашнюю страницу Lyso Найти все сообщения от Lyso
  № 1  
Ответить с цитированием
Lyso

Регистрация: Sep 2010
Адрес: Красноярск
Сообщений: 217
Отправить сообщение для Lyso с помощью Skype™
По умолчанию displayObject must be a child of the caller

При попытке сделать расплывающиеся круги (код внизу сообщения) у меня в вывод выходит ошибка

Код:
ArgumentError: Error #2025: Предоставленный DisplayObject должен быть дочерним элементом вызывающего объекта.
	at flash.display::DisplayObjectContainer/removeChild()
	at Function/<anonymous>()

Я не понимаю что с этой ошибкой делать, причина вроде
Код AS3:
removeChild(buffer);
но я не уверен.

Вот сам код:
Код AS3:
addEventListener(Event.ENTER_FRAME,
	function doIT(event:Event):void{
		var currentBall:ball=new ball;
		currentBall.x=Math.random()*550;
		currentBall.y=Math.random()*400;
		addChild(currentBall);
		currentBall.addEventListener(Event.ENTER_FRAME,
			function doIT(event:Event):void{
				var buffer:MovieClip=MovieClip(event.target);
				buffer.scaleX=buffer.scaleX-0.05;
				buffer.scaleY=buffer.scaleY-0.05;
				buffer.alpha=buffer.alpha-0.05;
 
				if(buffer.alpha<0.2){
					buffer.removeEventListener(Event.EXIT_FRAME, doIT);
					removeChild(buffer);
				}
			});
	}
);
Добавлено через 1 минуту
Если убрать строчку
Код AS3:
removeChild(buffer);
То всё прекрасно работает первое время. Но потом флешка тормозит и прекращает работать...

Добавлено через 4 минуты
Извините, нашёл ошибку. Вот так всегда, как напишешь - так найдёшь. В самом конце кода
Код AS3:
 buffer.removeEventListener(Event.EXIT_FRAME, doIT);
Надо написать ENTER_FRAME.

Но чтобы тема не пропадала, скажите как сделать, чтобы они не соприкасались с друг с другом


Последний раз редактировалось iNils; 08.12.2010 в 13:19.