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

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

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

Регистрация: Jan 2007
Сообщений: 302
По умолчанию Не получается обнулить все елементы sprite и удалить события

Значит при клике создается Sprite на котором разные компоненты. На Sprite есть кнопка которая удаляет этот контейнер и его элементы "Btn_zurueck" мне не получается потом их обнулить и удалить обработчики событий.

Вот функция создания контейнера

Код AS3:
private function box_create(event:MouseEvent):void{
 
				var label_t_fld1:TextField = lab_form(8,10,200,20,"Spieler Name");
				var label_t_fld2:TextField = lab_form(8,177,200,20,"Tisch Name");
				var label_t_fld3:TextField = lab_form(300,60,200,20,"Wälen Avatar");
 
				addChild(box_create_cont);
 
				create_TileList();
				text_inp();
 
				box_create_cont.width = 650;
				box_create_cont.height = 450;
				box_create_cont.x = 200;
				box_create_cont.y = 20;
 
				com_box1.spieler(10,260);
				com_box2.einsatz(230,260);
				com_box3.startkapital(450,260);
 
				btn_Box1.mouseEnabled = false;
				btn_Box2.mouseEnabled = false;
				btn_Box3.mouseEnabled = false;
 
				box_create_cont.addChild(com_box1);
				box_create_cont.addChild(com_box2);
				box_create_cont.addChild(com_box3);
				box_create_cont.addChild(label_t_fld1);
				box_create_cont.addChild(label_t_fld2);
				box_create_cont.addChild(label_t_fld3);
 
				Btn_zuruck = simpl_Btn2.Btn(110,30,"Zuruck",0x288e20,1.0);
				Btn_spiel = simpl_Btn3.Btn(110,30,"Spielll",0x288e20,1.0);
				Btn_zuruck.x = 25;
				Btn_zuruck.y = 390;
				Btn_spiel.x = 515;
				Btn_spiel.y = 390;
 
				box_create_cont.addChild(Btn_zuruck);
				box_create_cont.addChild(Btn_spiel);
 
				Btn_zuruck.addEventListener(MouseEvent.ROLL_OVER, over_Btn);
				Btn_zuruck.addEventListener(MouseEvent.ROLL_OUT, out_Btn);
				Btn_zuruck.addEventListener(MouseEvent.CLICK, box_losh);
 
				Btn_spiel.addEventListener(MouseEvent.ROLL_OVER, over_Btn);
				Btn_spiel.addEventListener(MouseEvent.ROLL_OUT, out_Btn);
				Btn_spiel.addEventListener(MouseEvent.CLICK, create_Tisch);
			}
Вот функция при нажатии на кнопку удалить контейнер.

Код AS3:
private function box_losh(event:MouseEvent):void{
 
				while (box_create_cont.numChildren > 0){
					box_create_cont.removeChildAt(0);
				}
				//t_list = null;
				Btn_zuruck.removeEventListener(MouseEvent.CLICK, box_losh);
 
				removeChild(box_create_cont);
				box_create_cont = null;
 
				btn_Box1.mouseEnabled = true;
				btn_Box2.mouseEnabled = true;
				btn_Box3.mouseEnabled = true;
 
			}
Все удаляется, но не могу потом его вновь создать.

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

Регистрация: Nov 2007
Сообщений: 183
А вы потрейсите его (box_create_cont) Он наверно вам null возвращает
Наверно вот из за этой строчки:
Код AS1/AS2:
box_create_cont = null;

Старый 17.02.2010, 17:54
Killer_13 вне форума Посмотреть профиль Отправить личное сообщение для Killer_13 Найти все сообщения от Killer_13
  № 3  
Ответить с цитированием
Killer_13
 
Аватар для Killer_13

Регистрация: Jan 2007
Сообщений: 302
понимаю, вот например я удаляю экземпляр который лежит в моем контейнере, потом обнуляю его, почему я не могу его вновь создать?
вот так к примеру
Код AS3:
			private function box_losh(event:MouseEvent):void{
 
				while (box_create_cont.numChildren > 0){
					box_create_cont.removeChildAt(0);
				}
				t_list = null;
				Btn_zuruck.removeEventListener(MouseEvent.CLICK, box_losh);
				trace(t_list);
				removeChild(box_create_cont);
				//box_create_cont = null;
 
				btn_Box1.mouseEnabled = true;
				btn_Box2.mouseEnabled = true;
				btn_Box3.mouseEnabled = true;
 
			}
потом когда опять хочу создать контейнер с тем же элементом(t_list), то вот такая ошибка

Код AS3:
null
TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
	at MainScreen/create_TileList()
	at MainScreen/box_create()
Добавлено через 1 час 3 минуты
Уррряяя, разобрался.
оказывается, у меня большинство переменных глобальные, и если я их обнулял, то обнулялись они тоже глобально, соответственно, глобально я переменным присвоил только тип, а создавал новые обьекты в самой функции.
Вот правильный код, может кому пригодиться.

Переменные
Код AS3:
		var com_box1:Comboboxen;
		var com_box2:Comboboxen;
		var com_box3:Comboboxen;
	        var t_inp_s_name:TextInput;
		var t_inp_t_name:TextInput;
		var t_list:TileList;
Код AS3:
			private function box_create(event:MouseEvent):void{
 
				var label_t_fld1:TextField = lab_form(8,10,200,20,"Spieler Name");
				var label_t_fld2:TextField = lab_form(8,177,200,20,"Tisch Name");
				var label_t_fld3:TextField = lab_form(300,60,200,20,"Wälen Avatar");
				t_list = new TileList();
				com_box1 = new Comboboxen();
				com_box2 = new Comboboxen();
				com_box3 = new Comboboxen();
 
				addChild(box_create_cont);
 
				create_TileList();
				text_inp();
 
				box_create_cont.width = 650;
				box_create_cont.height = 450;
				box_create_cont.x = 200;
				box_create_cont.y = 20;
 
				com_box1.spieler(10,260);
				com_box2.einsatz(230,260);
				com_box3.startkapital(450,260);
 
				btn_Box1.mouseEnabled = false;
				btn_Box2.mouseEnabled = false;
				btn_Box3.mouseEnabled = false;
 
				box_create_cont.addChild(com_box1);
				box_create_cont.addChild(com_box2);
				box_create_cont.addChild(com_box3);
				box_create_cont.addChild(label_t_fld1);
				box_create_cont.addChild(label_t_fld2);
				box_create_cont.addChild(label_t_fld3);
 
				Btn_zuruck = simpl_Btn2.Btn(110,30,"Zuruck",0x288e20,1.0);
				Btn_spiel = simpl_Btn3.Btn(110,30,"Spielll",0x288e20,1.0);
				Btn_zuruck.x = 25;
				Btn_zuruck.y = 390;
				Btn_spiel.x = 515;
				Btn_spiel.y = 390;
 
				box_create_cont.addChild(Btn_zuruck);
				box_create_cont.addChild(Btn_spiel);
 
				Btn_zuruck.addEventListener(MouseEvent.ROLL_OVER, over_Btn);
				Btn_zuruck.addEventListener(MouseEvent.ROLL_OUT, out_Btn);
				Btn_zuruck.addEventListener(MouseEvent.CLICK, box_losh);
 
				Btn_spiel.addEventListener(MouseEvent.ROLL_OVER, over_Btn);
				Btn_spiel.addEventListener(MouseEvent.ROLL_OUT, out_Btn);
				Btn_spiel.addEventListener(MouseEvent.CLICK, create_Tisch);
			}
Код AS3:
			private function box_losh(event:MouseEvent):void{
 
				while (box_create_cont.numChildren > 0){
					box_create_cont.removeChildAt(0);
				}
				t_list.removeAll();
				t_list = null;
				t_inp_s_name = null;
				t_inp_t_name = null;
				com_box1 = null;
				Btn_zuruck.removeEventListener(MouseEvent.CLICK, box_losh);
				trace(t_list);
				removeChild(box_create_cont);
				//box_create_cont = null;
 
				btn_Box1.mouseEnabled = true;
				btn_Box2.mouseEnabled = true;
				btn_Box3.mouseEnabled = true;
 
			}
Вопрос решен - тему можно закрывать.
Всем спасибо. !!!

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

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

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


 


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


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