|
|
|||||
Регистрация: May 2011
Сообщений: 76
|
еще один баг...
Может мне кто-то пояснить что я делаю неправильно? Или я наткнулся на очередной баг флеша?
как обычно, для наглядности приведу код: 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 } } } |
|
|||||
Регистрация: Feb 2010
Адрес: Город суеты
Сообщений: 191
|
//Не работает. titleId всегда 0. public function getTitleId():uint { var titleId:uint = messageClass.TITLE_ID; return titleId; } Т.к. messageClass у вас это сам класс поэтому данная конструкция не возвращает true, is покажет true в том случае, если messageClass будет экземпляром класса SendMessage, т.е. если написать так: Или так:
__________________
FlashPress.ru | Blog |
|
|||||
...
в констуркторе ... Добавлено через 2 минуты небольшая поправочка...с нулем может последняя конструкция некорректно сработать. т.е. если ожидается нуль как возвращаемое значение..так просто его не дождетесь
__________________
http://cleptoman.free-lance.ru achivements: дважды благословлен на воровство. осеяный благодатью |
|
|||||
Регистрация: May 2011
Сообщений: 76
|
Цитата:
На счет Дикшионари - мне совершенно не подходит. |
Часовой пояс GMT +4, время: 23:10. |
|
« Предыдущая тема | Следующая тема » |
|
|