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

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

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

Регистрация: Aug 2010
Сообщений: 144
По умолчанию Ошибка с кнопкой

Делаю кнопку, при нажатии она показывает объект, а при повторном нажатии удаляет его. Алгоритм реализации знаю, но выдает ошибку! Почему? И как ее исправить?

Код AS3:
private var bool:Boolean=false;
			private function microClick(e:Event):void
			{
 
				trace(bool);
 
				var MyShapeExample:MicrophoneList = new MicrophoneList();
				if(bool==true)
				{
					micro.removeElement(MyShapeExample);
					bool=false
				}
					micro.addElement(MyShapeExample);
					bool=true		
			}
Код:
ArgumentError: MicrophoneList89 is not found in this Group.
	at spark.components::Group/getElementIndex()[E:\dev\4.y\frameworks\projects\spark\src\spark\components\Group.as:1457]
	at spark.components::Group/removeElement()[E:\dev\4.y\frameworks\projects\spark\src\spark\components\Group.as:1404]
	at Skype_alternativ/microClick()[E:\Dropbox\webinar test\src\Skype_alternativ.mxml:47]
	at Skype_alternativ/__micro_click()[E:\Dropbox\webinar test\src\Skype_alternativ.mxml:144]
Ну это правда в Флексе

а во флеше все норм:

Код AS3:
var MyShapeExample:ShapeExample = new ShapeExample();
 
 
var bool:Boolean=false;
 
btn.addEventListener(MouseEvent.CLICK, btnClick)
function btnClick(e:Event):void
{
	trace(bool);
	if(bool==true)
	{
		removeChild(MyShapeExample);
		bool=false
	}
	else
	{
		addChild(MyShapeExample);
		bool=true		
	}
}
Ошибся веткой, просьба модераторов перенести данную тему, извините за нарушение правил форума=)


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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Тру-тру-тру? Спасибо))
А в чем смысл этой bool вообще? В красивом разбиении кода на скобочки?
__________________
Reality.getBounds(this);

Старый 16.03.2012, 20:51
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 3  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Просто топикстартеру нужно вынести MyShapeExample в область видимости класса, из области видимости метода. И назвать ее с маленькой буквы нормально.
__________________
тут я

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Ну вот смотрите.
Допустим что в начале bool = false.
Мы создали новый MicrophoneList, перешли к условию. Условие не выполнилось, записали (ура!) MicrophoneList в микро. Установили bool = true; Зашибись.
Второй акт: создали новый MicrophoneList (!)
перешли к условию и оно выполнилось, bool == true
Говорим: микро, удали наш новый MicrophoneList !
А микро такой: какой такой новый микрофонЛист? Нет у меня никакого нового. Есть правда старый, но вам же его не надо удалять, да?

Добавлено через 5 минут
Код AS3:
private var _bool:Boolean=false;
private var _myShapeExample:MicrophoneList;
private function microClick(e:Event):void
{
 
		trace(_bool);
 		// сначала надо удалить старый, а потом уже создавать новый
		//var MyShapeExample:MicrophoneList = new MicrophoneList();
		if(_bool)
		{
			micro.removeElement(_myShapeExample);
		}
		_myShapeExample = new MicrophoneList();
		micro.addElement(_myShapeExample);
		_bool = true;		
}
__________________
Reality.getBounds(this);


Последний раз редактировалось Wolsh; 16.03.2012 в 21:04.
Старый 17.03.2012, 21:54
sneltyn вне форума Посмотреть профиль Отправить личное сообщение для sneltyn Найти все сообщения от sneltyn
  № 5  
Ответить с цитированием
sneltyn

Регистрация: Aug 2010
Сообщений: 144
Wolsh, и как мне тогда сделать правильно removeElement???

Старый 17.03.2012, 22:12
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 6  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Я же написал.
__________________
тут я

Старый 17.03.2012, 22:16
sneltyn вне форума Посмотреть профиль Отправить личное сообщение для sneltyn Найти все сообщения от sneltyn
  № 7  
Ответить с цитированием
sneltyn

Регистрация: Aug 2010
Сообщений: 144
Я только начал с классами работать и еще немножко не в теме

Старый 17.03.2012, 22:34
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 8  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Код AS3:
private var MyShapeExample:ShapeExample;
 
private function microClick(e:Event):void
{
	trace(bool);
 
	MyShapeExample = new MicrophoneList();
	if(bool==true)
	{
		micro.removeElement(MyShapeExample);
		bool=false
	}
	micro.addElement(MyShapeExample);
	bool=true		
}
__________________
тут я

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
КорДум, перечитай мое сообщение. Внимательно. И посмотри на свой код.
sneltyn, перечитай мое сообщение. Внимательно. Там код написан – его видно? Тогда о чем вопрос?
__________________
Reality.getBounds(this);

Старый 17.03.2012, 22:59
sneltyn вне форума Посмотреть профиль Отправить личное сообщение для sneltyn Найти все сообщения от sneltyn
  № 10  
Ответить с цитированием
sneltyn

Регистрация: Aug 2010
Сообщений: 144
Wolsh, ваш код не работает=(

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

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

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


 


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


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