Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 18.12.2011, 07:46
Vernus вне форума Посмотреть профиль Отправить личное сообщение для Vernus Найти все сообщения от Vernus
  № 1  
Ответить с цитированием
Vernus

Регистрация: Dec 2011
Сообщений: 6
По умолчанию проблемы с removeChild

тут я пробую реализовать перемещение подгружаемого объекта spear в точку клика мыши
------------------------------------------
Код AS3:
stage.addEventListener(MouseEvent.CLICK, kid); 
 
function kid(e:Event):void
{				
 
		if (spear2.visible == true)
		{
		var spear:Sprite = new Sprite();
		var my_loader:Loader = new Loader();
		my_loader.load(new URLRequest("spear2.png"));
		addChild(spear);
		spear.addChild(my_loader);
		spear.x=spear2.x;
		spear.y=spear2.y;
		a =  mouseX;
		b =  mouseY;				
		spear2.visible = false;
		v=0;
		}
 
 
 
stage.addEventListener(Event.ENTER_FRAME, MO);
 
function MO(e:Event):void 
{
 
	if (spear2.visible == false)
	{			
			if (spear.x >= a)
			{
				spear.x-=(spear2.x - a)/4;
				spear.y-=(spear2.y - b)/4;
 
			}	
			if (spear.x <= a)
			{			
				v++;
				if (v == 3)
				{
				spear.removeChild(my_loader);
				spear2.visible = true;
				}
			}
	}	
 
}
-------------------------------------------------------------
один раз перемещает, удаляет, добавляет новый, перемещает и вот второй раз не удаляет spear(ArgumentError: Error #2025: Предоставленный DisplayObject должен быть дочерним элементом вызывающего объекта.
at flash.display:isplayObjectContainer/removeChild())
почему я не пойму... метил с условиями по разному эффект был только хуже(не правильная анимация, куча ошибок на выходе и т.д.)
помогите с решение проблемы реализации перемещения объекта в точку клика мыши, уже второй день сижу не могу ничего выдумать путного...
P.S. приложил файлик скомпилированого ролика, не пугайтесь, там сперва идёт небольшой мульт-предыстория =)
Вложения
Тип файла: rar cutscene1.rar (358.1 Кб, 22 просмотров)


Последний раз редактировалось Vernus; 18.12.2011 в 08:06.
Старый 18.12.2011, 08:06
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 2  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
У Вас в первой функции объявляется локальная(!) переменная var spear:Sprite, да еще и в блоке условия, то есть толи создается, толи нет, от чего-то зависит. Нигде за пределами функции эта переменная не видна. Тогда с какой spear работает функция MO? Я так понимаю, это у Вас приватная переменная экземпляра, как и spear2. Но тогда надо убрать из первой функции создание новой переменной с таким же именем. И начать уже писать в классах.
__________________
Reality.getBounds(this);

Старый 18.12.2011, 08:10
Vernus вне форума Посмотреть профиль Отправить личное сообщение для Vernus Найти все сообщения от Vernus
  № 3  
Ответить с цитированием
Vernus

Регистрация: Dec 2011
Сообщений: 6
функция MO вложена в функцию kid, оттуда видно spear, оно работает на полтора раза, но не более, до этого другие условия стояли, код и создавал и удалял, только с ошибками и сам объект не доходил до нужной точки а щас он доходит, всё вроде нормально но второй раз удаление потомка не срабатывает...

Старый 18.12.2011, 08:26
Vernus вне форума Посмотреть профиль Отправить личное сообщение для Vernus Найти все сообщения от Vernus
  № 4  
Ответить с цитированием
Vernus

Регистрация: Dec 2011
Сообщений: 6
вынес
Код AS3:
		var spear:Sprite = new Sprite();
		var my_loader:Loader = new Loader();
в паблик и теперь ошибки нет, но эффект тот же, не работает более 2х раз... далее просто создаёт но не перемещает

Создать новую тему Ответ Часовой пояс GMT +4, время: 17:24.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 17:24.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.