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

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

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

Регистрация: Jan 2007
Сообщений: 302
Smile как назначить диспечиризвцию 3-ох обектов в одном классе???

Есть три комбобокса в одном классе, нужно назначить диспечиризацию каждому из них и потом вызывать в другом классе
Вот так с одним комбобоксом работает

Код AS3:
public var cb_spieler:ComboBox = new ComboBox();
public var cb_einsatz:ComboBox = new ComboBox();
public var cb_startkapital:ComboBox = new ComboBox();
 
 
 
cb_spieler.addEventListener(Event.CHANGE, Change);
 
 
 
private function Change(event:Event){
 
	dispatchEvent(new Event("Change_comBox1"));
 
}
 
 
public function get selectedLabel():String{
 
	return cb_spieler.selectedLabel;
 
}
С тремя комбобоксми пробую делать вот так..

Код AS3:
//--------------------------------------------------------------------------------
 
		private function Change(event:Event){
 
			switch (event.target) {
 
   					case cb_spieler: {
						dispatchEvent(new Event("Change_comBox1"));
					} break;
 
   					case cb_einsatz: {
						dispatchEvent(new Event("Change_comBox2"));
					} break;
 
	   				case cb_startkapital: {
						dispatchEvent(new Event("Change_comBox3"));
					} break;
				}
		}
 
//--------------------------------------------------------------------------------
 
		public function get selectedLabel():String{
 
			switch (this.target) {
 
   					case cb_spieler: {
						return cb_spieler.selectedLabel;
					} break;
 
   					case cb_einsatz: {
						return cb_einsatz.selectedLabel;
					} break;
 
	   				case cb_startkapital: {
						return cb_startkapital.selectedLabel;
					} break;
			}
		}
 
//-------------------------------------------------------------------------------
Че т не очень хочет.. ругается на return в switch и я незнаю как в switch принять текущий обект.

Всем спасибо за ответы..

Старый 23.02.2010, 19:32
dixus вне форума Посмотреть профиль Отправить личное сообщение для dixus Найти все сообщения от dixus
  № 2  
Ответить с цитированием
dixus

Регистрация: Feb 2010
Сообщений: 33
Цитата:
Сообщение от Killer_13 Посмотреть сообщение
ругается на return в switch
Ваша функция ничего не возвратит, если ни один case в switch'e не сработает, потому и ругается

ЗЫ: Что мешает чделать так:

Код AS3:
return this.target.selectedLabel;
?


Последний раз редактировалось dixus; 23.02.2010 в 19:37.
Старый 23.02.2010, 19:37
Killer_13 вне форума Посмотреть профиль Отправить личное сообщение для Killer_13 Найти все сообщения от Killer_13
  № 3  
Ответить с цитированием
Killer_13
 
Аватар для Killer_13

Регистрация: Jan 2007
Сообщений: 302
Так что мне еще default прописать?

А ход правильный...? Я на счет вопроса, что в названии темы..

Добавлено через 13 минут
Дело в том, что я никак не могу врубиться как работают set и get, функция

Код AS3:
public function get selectedLabel():String{
не будет работать вообще, поскольку в get методы нельзя передавать никакие параметры, так как все таки сделать?

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

Регистрация: Feb 2010
Сообщений: 33
Цитата:
Сообщение от Killer_13 Посмотреть сообщение
Дело в том, что я никак не могу врубиться как работают set и get, функция

Код AS3:
public function get selectedLabel():String{
не будет работать вообще, поскольку в get методы нельзя передавать никакие параметры, так как все таки сделать?
Собственно, что должно возвращать selectedLabel? Лейбл последнего измененного комбобокса? Если да - то надо сохранять информацию о том, к какому комбобоксу обращались последний раз.

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

Регистрация: Jan 2007
Сообщений: 302
Нужно сделать, чтоб возвращало, лейблы всех трех комбобоксов...

Код AS3:
private function Change(e:Event){
selectedBox = ComboBox(e.target);
dispatchEvent(new Event("Change_comBox1"));
trace("1>"+selectedBox);
}
//
public function get selectedLabel():String{
 
trace("2>"+selectedBox);
trace("3>"+selectedBox.selectedLabel);
return selectedBox.selectedLabel;
}
вот так, если выбирать значения комбобоксов, работает, а если их не трогать, то исть CHANGE не срабатывает и соответственно все косбобоксы null...

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

Регистрация: Feb 2010
Сообщений: 33
Цитата:
Сообщение от Killer_13 Посмотреть сообщение
Нужно сделать, чтоб возвращало, лейблы всех трех комбобоксов...
в таком случае стоит их возвращать массивом/упаковать в одну строку, а еще лучше - по возможности сделать по отдельному аксессору на каждый комбобокс.

Цитата:
Сообщение от Killer_13 Посмотреть сообщение
вот так, если выбирать значения комбобоксов, работает, а если их не трогать, то исть CHANGE не срабатывает и соответственно все косбобоксы null...
Почему бы не инициировать selectedBox изначально? Если возвращать что-то надо только когда юзер что-то выбирал в комбобоксах - заведите соответствующий флажок.

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

Регистрация: Jan 2007
Сообщений: 302
Цитата:
Почему бы не инициировать selectedBox изначально?
Присваиваю
Код AS3:
private var selectedBox:ComboBox=cb_spieler;
В таком случае, этот комбобокс, имеет значение, то что нужно, а остальные null

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

Регистрация: Feb 2010
Сообщений: 33
Цитата:
Сообщение от Killer_13 Посмотреть сообщение
В таком случае, этот комбобокс, имеет значение, то что нужно, а остальные null
Не понял. selectedBox у вас один, и он ссылается на cb_spieler. cb_einsatz и cb_startkapital у вас инициализированы изначально. Что тогда null?

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

Регистрация: Jan 2007
Сообщений: 302
Да, верно, но если собитие Change не происходит, тоисть пользователь, не выбирает никаких значений, а остаются значения те, которые заданы по умолчанию...
Соответственно в selectedBox отсылает null,
Если так тоже непонятно, могу выставить код, там немного..

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

Регистрация: Feb 2010
Сообщений: 33
Ну вообще это вполне логично =) Либо в коде, использующем ваш selectedLabel, учитывайте такую возможность, либо изначально проставьте выбранные значения для комбобоксов.

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

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

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


 


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


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