![]() |
|
Модераторы: javastic, AntonSaburov |
![]()
|
|
| Zamuta |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 389 Регистрация: 18.1.2006 Репутация: нет Всего: 6 |
Есть мидлет и есть канвас
Как работать с keyPressed(int code) внутри этого же класса понятно, а как сделать переход к другому классу из под keyPressed не знаю. То есть, скажем, ещё отдельный класс , например, в котором экран закрашивался красным цветом. Думаю на CommandListener. -------------------- Thank you opensource. |
|||
|
||||
| Frog |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 11.3.2006 Где: The swamp Репутация: нет Всего: нет |
я не вполне понял суть проблемы - но к другому обьекту, из любого метода, включая keyPressed можно обратиться так :
если-же Вы непременно хотите поменять Canvas ,то новый Сanvas будет иметь СВОЙ keyPressed(int code) - в нем и прописывате нужный Вам код. Это сообщение отредактировал(а) Frog - 22.8.2006, 03:58 |
|||
|
||||
| Zamuta |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 389 Регистрация: 18.1.2006 Репутация: нет Всего: 6 |
Ок. Объясню подробнее. Я хочу начать выполнение другого класса, как скажем, нажал на кнопку "Старт" и началось выполнение класса рисующий графику, например так(самый простейший):
То есть при выборе "New game" запускался один класс, при выборе "Help" другой класс и так далее.... -------------------- Thank you opensource. |
|||
|
||||
| javastic |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1214 Регистрация: 18.3.2005 Где: St.Petersburg Репутация: 19 Всего: 27 |
-------------------- 01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011 scjp, mcp |
|||
|
||||
| Zamuta |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 389 Регистрация: 18.1.2006 Репутация: нет Всего: 6 |
Ругается на строчку display.setDisplay(secondClass);
Привожу полный листинг с изменениями:
И ещё, как в моём случае получить ссылку на выбранный указатель, то есть если у меня меню состоит из строкового массива String[] mainMenu = {"New Game","High Score","Settings","Help","About"}; Как в keyPressed ссылаться на отдельную строчку? И можно ли так вообще? Какая константа отвечает за кнопку "Выбор" или "ОК" или нужен CommandListener Спасибо.. Это сообщение отредактировал(а) Zamuta - 22.8.2006, 12:44 -------------------- Thank you opensource. |
||||||
|
|||||||
| javastic |
|
||||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1214 Регистрация: 18.3.2005 Где: St.Petersburg Репутация: 19 Всего: 27 |
Ругается потому что ты подставляешь не Ris, а menuScreen который не создан. Подставь ещё
до отображения или замени на Ris. В методе keyPressed(int keyCode) первой строкой выполни следущее:
Заведи индекс для элекмента int Index = 0; 0 это будет NewGame 1 это будет High Score и т.д. Максимальное значение для индекса будет кол-во эл-тов в массиве. Вот, всё расписал по полочкам. -------------------- 01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011 scjp, mcp |
||||||
|
|||||||
| Zamuta |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 389 Регистрация: 18.1.2006 Репутация: нет Всего: 6 |
Да javastic, спасибо. С display.setCurrent() понятно, ничего необычного, но про переход в другой класс я так и не понял, как не пытался не получилось. В классе MenuScreen есть mainMenu.length , можно ли отсюда извлечь позицию курсора и выполнить переход, или получить номер строки массива mainMenu[i], при помощи public char charAt(int index){} , или использовать значение menuIdx ? Я затрудняюсь в том как это правильно сделать на языке java.
Спасибо. -------------------- Thank you opensource. |
|||
|
||||
| javastic |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1214 Регистрация: 18.3.2005 Где: St.Petersburg Репутация: 19 Всего: 27 |
После того как ты нажал FIRE на джойстике вызывай следущее:
charAt() тут ни к чему не нужен, используй индекс (см. выше я тебе всё расписал). Чуть чуть поковыряешься и сделаешь, если проблемы с явой, то тут я тебе ни чем помочь не могу. -------------------- 01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011 scjp, mcp |
|||
|
||||
| Zamuta |
|
||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 389 Регистрация: 18.1.2006 Репутация: нет Всего: 6 |
1. Всё получилось. я использовал значение menuIdx. На эмуляторе(wtk) всё нормально выполняется при нажатии на кнопку select, а на моём телефоне (nokia 6060) только при нажатии на клавишу 5 или зелёной кнопки ответа, а на кнопку select не реагирует, посоветуйте что делать....
2. Попробовал сделать message = getKeyName( code ); System.out.print(message); пишет, что имя моей клавиши SELECT, но getGameAction(code) не хочет получать такой параметр. 3. Запустил всё это на эмуляторе S40 Nokia 6255, включил монитор и увидел, что в разделе MIDP RAM объём используемой памяти постоянно растёт и когда доходит до максимума происходит сброс и процесс постоянно повторяется, не пойму почему...
Это сообщение отредактировал(а) Zamuta - 26.8.2006, 02:13 -------------------- Thank you opensource. |
||||||||
|
|||||||||
| javastic |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1214 Регистрация: 18.3.2005 Где: St.Petersburg Репутация: 19 Всего: 27 |
Посмотри что выводит Systemout.println(message), или просто считай keyCode. -------------------- 01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011 scjp, mcp |
|||
|
||||
| Zamuta |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 389 Регистрация: 18.1.2006 Репутация: нет Всего: 6 |
Systemout.println(message), выводит SELECT, но я не могу передать в getGameAction(code) SELECT потому что такого параметра просто не существует, и что делать дальше не знаю. А что на счёт переполнения памяти скажете? repaint(); я уже пробовал убирать, думал из-за него.
Это сообщение отредактировал(а) Zamuta - 28.8.2006, 00:58 -------------------- Thank you opensource. |
|||
|
||||
| javastic |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1214 Регистрация: 18.3.2005 Где: St.Petersburg Репутация: 19 Всего: 27 |
Возможно раскладка клавиатуры какая-то нестандартная, вот все доступные поля:
Я заметил что у тебя в методе paint стоит в конце всего repaint() , не стоит этого делать!!!! -------------------- 01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011 scjp, mcp |
|||
|
||||
| F1DEvELoP |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 22.3.2009 Репутация: нет Всего: нет |
Нужна помощь
тут наворот по графике а мне нужно просто опросить NUMPAD и выполнить по нажатой цифровой кнопке действие запускаю потоком при старте мидлета
далее класс потока опроса клавы
//END опрос клавиатуры |
||||
|
|||||
![]()
|
FAQ раздела лежит здесь! |
| 1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java ME (J2ME) | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |