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

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

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

Регистрация: Jun 2007
Сообщений: 83
По умолчанию Проблема с removeChild

Всем привет.
Проблема в следующем.Имеется Спрайт с двумя кнопками.
После нажатия на одну из них - он должен отключить листенеры от этих кнопок и удалить себя с экрана.Но почему то этот процесс "залипает".То есть иногда спрайт нормально удаляется, а иногда он удаляется только после нескольких нажатий на кнопку(хотя листенер должен был удалиться после первого же).В чём может быть проблема?
Вот код:
Код AS3:
package 
{
	import flash.display.Sprite;
	import flash.display.MovieClip;
	import flash.events.MouseEvent;
	import flash.text.TextField;
 
	public class UserPanel extends Sprite
	{
 
		public function UserPanel() 
		{
			this.x = 320;
			this.y = 250;
			this.tabChildren = false;
			this.tabEnabled = false;
 
	                this.resBtnIns.addEventListener(MouseEvent.CLICK, BtnClick);
			this.mainBtnIns.addEventListener(MouseEvent.CLICK, BtnClick);
 
		}
 
	   private function BtnClick(e:MouseEvent):void 
		{   this.resBtnIns.removeEventListener(MouseEvent.CLICK, BtnClick);
			this.mainBtnIns.removeEventListener(MouseEvent.CLICK, BtnClick);
			parent.removeChild(this);
 
			}
}
 
}

Старый 18.02.2010, 02:49
mayakwd вне форума Посмотреть профиль Отправить личное сообщение для mayakwd Посетить домашнюю страницу mayakwd Найти все сообщения от mayakwd
  № 2  
Ответить с цитированием
mayakwd
 
Аватар для mayakwd

Регистрация: Jul 2008
Адрес: t:2, x: 0.76
Сообщений: 553
Отправить сообщение для mayakwd с помощью ICQ Отправить сообщение для mayakwd с помощью Skype™
super() в конструктор добавьте.
__________________
Блог, Twitter
Брюзга.

Старый 18.02.2010, 03:42
GentleFLASH вне форума Посмотреть профиль Отправить личное сообщение для GentleFLASH Найти все сообщения от GentleFLASH
  № 3  
Ответить с цитированием
GentleFLASH

Регистрация: Apr 2009
Сообщений: 117
А при чем тут super? Он и так компилятором добавится. Думаю что фокуса на объекте нет, поэтому первый клик активирует объект, а потом происходит само действо.

Старый 18.02.2010, 09:49
Jewelz вне форума Посмотреть профиль Отправить личное сообщение для Jewelz Найти все сообщения от Jewelz
  № 4  
Ответить с цитированием
Jewelz
 
Аватар для Jewelz

Регистрация: Aug 2008
Адрес: Рязань
Сообщений: 723
так нехорошо писать

Код AS3:
parent.removeChild(this);
__________________
low +

Старый 18.02.2010, 09:52
SamFR вне форума Посмотреть профиль Отправить личное сообщение для SamFR Посетить домашнюю страницу SamFR Найти все сообщения от SamFR
  № 5  
Ответить с цитированием
SamFR

Регистрация: Mar 2008
Адрес: Ростов-на-Дону
Сообщений: 354
В приведённом коде вроде всё хорошо. Поэтому ищите, что ещё может вызывать глюк. Может быть, кнопка в определённые моменты перекрывается чем-то прозрачным, и соответственно не получает событий мыши. Может, создаётся несколько объектов UserPanel, расположенных друг над другом, и визуально удаления не происходит.

Либо приведите больше кода

Если вы запускаете мувик в составе html-страницы, убедитесь, что объект плеера имеет фокус, в противном случае первый клик не будет получен плеером, как уже сказали выше.

Добавлено через 46 секунд
Jewelz — почему?

Старый 18.02.2010, 10:03
Jewelz вне форума Посмотреть профиль Отправить личное сообщение для Jewelz Найти все сообщения от Jewelz
  № 6  
Ответить с цитированием
Jewelz
 
Аватар для Jewelz

Регистрация: Aug 2008
Адрес: Рязань
Сообщений: 723
потому что чайлд должен событие посылать
__________________
low +

Старый 18.02.2010, 12:25
mayakwd вне форума Посмотреть профиль Отправить личное сообщение для mayakwd Посетить домашнюю страницу mayakwd Найти все сообщения от mayakwd
  № 7  
Ответить с цитированием
mayakwd
 
Аватар для mayakwd

Регистрация: Jul 2008
Адрес: t:2, x: 0.76
Сообщений: 553
Отправить сообщение для mayakwd с помощью ICQ Отправить сообщение для mayakwd с помощью Skype™
потому что надежда на авось да кабы часто заканчивается плачевно. и во всем будут винить компилятор
__________________
Блог, Twitter
Брюзга.

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

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

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


 


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


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