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

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

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

Регистрация: May 2011
Сообщений: 76
По умолчанию еще один баг...

Может мне кто-то пояснить что я делаю неправильно? Или я наткнулся на очередной баг флеша?
как обычно, для наглядности приведу код:
Код AS3:
package test
{
    public class SendMessage
    {
        public static const TITLE_ID:uint = 2;
    }
}
 
package test
{
    public class ForwardMessage
    {
        public static const TITLE_ID:uint = 7;
    }
}
 
package test
{
    public class MessageController
    {
		private var messageClass:Class;
 
        public function init(messageType:Class):void
        {
			messageClass = messageType;
        }
 
		//Не работает. titleId всегда 0.
		public function getTitleId():uint
		{
			var titleId:uint = messageClass.TITLE_ID;
			return titleId;
		}
 
 
		// Тоже не работает(Ни одно из условий не удовлетворяется), догадываюсь почему, нохотелось бы услышать правильный ответ.
		public function getTitleId1():uint
		{
			var titleId:uint = 666;
			if(messageClass is SendMessage)
			{
				titleId = SendMessage.TITLE_ID;
			}
			else if(messageClass is ForwardMessage)
			{
				titleId = ForwardMessage.TITLE_ID;
			}
			return titleId;
		}
 
		//Работает.
		public function getTitleId2():uint
		{
			var titleId:uint = 666;
			if(messageClass == SendMessage)
			{
				titleId = SendMessage.TITLE_ID;
			}
			else if(messageClass == ForwardMessage)
			{
				titleId = ForwardMessage.TITLE_ID;
			}
			return titleId;
		}
 
    }
}
 
package test
{
    import test.SendMessage;
    import test.ForwardMessage;
 
    public class Main
    {
 
 
        public function Main()
        {
			var control:MessageController = new MessageController();
			control.init(SendMessage);
			trace(control.getTitleId());  // 0
			trace(control.getTitleId1()); // 666
			trace(control.getTitleId2()); // 2
			control.init(WriteMessage);
			trace(control.getTitleId());  // 0
			trace(control.getTitleId1()); // 666
			trace(control.getTitleId2()); // 7
        }
    }
}
Вопрос, как написать правильно что бы не нужно было использовать ифы(работал getTitleId() метод).

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

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

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


 


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


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