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

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

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

Регистрация: Apr 2009
Сообщений: 167
Записей в блоге: 1
По умолчанию Не удаляет второй removeChild

вот код:
Код AS3:
import com.zorked.URLNavigator;
 
var all1 = new all11();
addChild(all1);
all1.width = stage.stageWidth;
all1.height = all1.width/4.417;
all1.y= -(stage.stageHeight/2 - all1.height/2.5);
all1.x = 230;
var all1_Y = -(stage.stageHeight/2 - all1.height/2.5);
 
var MAIN_PAGE = new main_page();
var PASS_PAGE = new pass1();
var NEWS_PAGE = new allNews();
 
all1.addEventListener(MouseEvent.MOUSE_WHEEL, changeCoordinates);
all1.allButtons.doc.addEventListener(MouseEvent.CLICK, goToPage);
all1.allButtons.history.addEventListener(MouseEvent.CLICK, goToPage);
all1.allButtons.news.addEventListener(MouseEvent.CLICK, goToPage);
all1.allButtons.ob.addEventListener(MouseEvent.CLICK, goToPage);
all1.allButtons.rk.addEventListener(MouseEvent.CLICK, goToPage);
all1.button_to_smr.addEventListener(MouseEvent.CLICK, goToPage);
all1.to_pass.addEventListener(MouseEvent.CLICK, goToPage);
all1.to_pass.buttonMode = true;
 
addChild(MAIN_PAGE);
MAIN_PAGE.width = all1.width;
MAIN_PAGE.height = MAIN_PAGE.width;
MAIN_PAGE.x = 240;
MAIN_PAGE.y = all1.y + all1.height/2 + MAIN_PAGE.height/1.85;
//trace(numChildren)
getChildIndex(MAIN_PAGE);
 
 
 
function goToPage (e:Event) {
	if (e.target == all1.allButtons.doc) {
		URLNavigator.ChangePage("http://www.soyuzmash.ru/about/documents/", "_blank");
	}
	if (e.target == all1.button_to_smr) {
		URLNavigator.ChangePage("http://www.soyuzmash.ru", "_blank");
	}
	if (e.target == all1.allButtons.rk) {
		URLNavigator.ChangePage("http://www.soyuzmash.ru/region/reg58/", "_blank");
	}
	if (e.target == all1.allButtons.history) {
		addChild(MAIN_PAGE);
		MAIN_PAGE.width = all1.width;
		MAIN_PAGE.height = MAIN_PAGE.width;
		MAIN_PAGE.x = 240;
		MAIN_PAGE.y = all1.y + all1.height/2 + MAIN_PAGE.height/1.85;		
		all1.y = all1_Y;	
		removeChild(NEWS_PAGE);
		removeChild(PASS_PAGE);		
	}
	if (e.target == all1.to_pass) {
		addChild(PASS_PAGE);	
		PASS_PAGE.width = all1.width/4
		PASS_PAGE.height = PASS_PAGE.width;
		PASS_PAGE.x=240;
		PASS_PAGE.y = all1.y + all1.height/2 + PASS_PAGE.height/1.85;
		removeChild(MAIN_PAGE);
		removeChild(NEWS_PAGE);
	}
 
	if (e.target == all1.allButtons.news) {
		addChild(NEWS_PAGE);
		NEWS_PAGE.width = all1.width;
		NEWS_PAGE.height = NEWS_PAGE.width;
		NEWS_PAGE.x = 240;
		NEWS_PAGE.y = all1.y + all1.height/2 + NEWS_PAGE.height/1.85;
		removeChild(MAIN_PAGE);
		removeChild(PASS_PAGE);		
	}
	if (e.target == all1.allButtons.doc) {
		URLNavigator.ChangePage("http://www.soyuzmash.ru/about/documents/", "_blank");
	}
}
 
function changeCoordinates (e:Event) {
}
Проблема в том, что removeChild срабатывает лишь раз при нажатии кнопок!
Тобишь если я жму "all1.allButtons.news" то MAIN_PAGE удалиться, а PASS_PAGE нет!
Как мне сдалть так, что бы удалялось и то и то?

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

Регистрация: Feb 2008
Адрес: Череповец
Сообщений: 623
Отправить сообщение для Felicast с помощью ICQ
в вашем коде очень сложно ориентироваться. и как я понял из кода, PASS_PAGE вообще не добавлен на сцену пока не нажата кнопка all1.to_pass.
__________________
я могу стать всем, если только захочу

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

Регистрация: Apr 2009
Сообщений: 167
Записей в блоге: 1
Сейчас дам упрощенную версию кода

Добавлено через 18 минут
Код AS3:
var my_r1 = new r1();
var my_r2 = new r2();
 
//addChild(my_r1);
addChild(my_r2);
 
r3.addEventListener(MouseEvent.CLICK, f1);
 
function f1 (e:Event) {
	removeChild(my_r1);
	removeChild(my_r2);
}
my_r2 не удалился

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

Регистрация: Apr 2001
Адрес: Berlin
Сообщений: 1,862
Отправить сообщение для derhab с помощью ICQ Отправить сообщение для derhab с помощью Skype™
удалился
Код AS3:
function f1 (e:Event) {
	removeChild(my_r2);
        trace(my_r2.stage);
        //просто ссылка на него осталась, если хотите обнулить ее добавьте
        my_r2 = null;
}
__________________
freelance | Раздор

Старый 04.11.2009, 15:36
dixlofos вне форума Посмотреть профиль Отправить личное сообщение для dixlofos Найти все сообщения от dixlofos
  № 5  
Ответить с цитированием
dixlofos
 
Аватар для dixlofos

Регистрация: Apr 2009
Сообщений: 167
Записей в блоге: 1
все равно работает как-то странно
код ниже то не удаляет my_r2 то не удаляет my_r3 =/

Код AS3:
var my_r1 = new r1();
var my_r2 = new r2();
var my_r3 = new r3();
 
b1.addEventListener(MouseEvent.CLICK, f1);
b2.addEventListener(MouseEvent.CLICK, f1);
b3.addEventListener(MouseEvent.CLICK, f1);
 
function f1(e:Event):void {
	if (e.target == b1) {
		my_r1 = new r1();
		addChild(my_r1);
		my_r1.y = 200;
 
		removeChild(my_r2);
		my_r2 = null;
		removeChild(my_r3)
		my_r3 = null;
	}
	if (e.target == b2) {
		my_r2 = new r2();
		addChild(my_r2);
		my_r2.y = 200;
 
		removeChild(my_r1);
		my_r1 = null;
		removeChild(my_r3)
		my_r3 = null;
	}
	if (e.target == b3) {
		my_r3 = new r3();
		addChild(my_r3);
		my_r3.y = 200;
		my_r3.x = 200;
 
		removeChild(my_r1);
		my_r1 = null;
		removeChild(my_r2);
		my_r2 = null;
	}
}

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

Регистрация: May 2003
Адрес: Tallinn
Сообщений: 3,182
он сначала пытается удалить my_r1, который судя по упрощённому коду не лежит в дисплей листе

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

Регистрация: Apr 2009
Сообщений: 167
Записей в блоге: 1
кароче решил проблему вложенными циклами:
Код AS3:
var my_r1 = new r1();
var my_r2 = new r2();
var my_r3 = new r3();
 
b1.addEventListener(MouseEvent.CLICK, f1);
b2.addEventListener(MouseEvent.CLICK, f1);
b3.addEventListener(MouseEvent.CLICK, f1);
 
function f1(e:Event):void {
	if (e.target == b1) {
		my_r1 = new r1();
		addChild(my_r1);
 
		my_r1.y = 200;
 
		if (my_r2 != null) {
			removeChild(my_r2);
			my_r2 = null;
		}
		if (my_r3 != null) {
			removeChild(my_r3);
			my_r3 = null;
		}
	}
 
	if (e.target == b2) {
		my_r2 = new r2();
		addChild(my_r2);
		my_r2.y = 200;
 
		if (my_r1 != null) {
			removeChild(my_r1);
			my_r1 = null;
		}
 
		if (my_r3 != null) {
			removeChild(my_r3);
			my_r3 = null;
			}
	}
 
	if (e.target == b3) {
		my_r3 = new r3();
		addChild(my_r3);
		my_r3.y = 200;
		my_r3.x = 200;
 
		if (my_r1 != null) {
			removeChild(my_r1);
			my_r1 = null;
		}
		if (my_r2 != null) {
			removeChild(my_r2);
			my_r2 = null;
		}
	}
}
всем спасибо за участие

Старый 04.11.2009, 20:18
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 8  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,600
Записей в блоге: 17
а где у вас там циклы?

Старый 05.11.2009, 05:42
dixlofos вне форума Посмотреть профиль Отправить личное сообщение для dixlofos Найти все сообщения от dixlofos
  № 9  
Ответить с цитированием
dixlofos
 
Аватар для dixlofos

Регистрация: Apr 2009
Сообщений: 167
Записей в блоге: 1
Код AS3:
if
и далее

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

Регистрация: Feb 2008
Адрес: Череповец
Сообщений: 623
Отправить сообщение для Felicast с помощью ICQ
это называется условие. циклы это for и while
__________________
я могу стать всем, если только захочу

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

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

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


 


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


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