Здесь показаны различия между двумя версиями данной страницы.
jazyk:basics [2014/05/16 10:40] vadmin создано |
jazyk:basics [2023/05/08 17:44] (текущий) |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | {{indexmenu_n>1}} | ||
=====Типовая программа. Именование объектов. Перехват событий объектов===== | =====Типовая программа. Именование объектов. Перехват событий объектов===== | ||
- | Типовая программа состоит из следующих шагов: | + | Типовая программа состоит из следующих шагов:\\ |
- | 1. Получить ссылки на управляемые объекты | + | 1. Получить ссылки на управляемые объекты.\\ |
- | 2. Назначить обработчики необходимых событий для этих объектов | + | 2. Назначить обработчики необходимых событий для этих объектов. |
- | Примером программы на vJS может служить следующий код | + | |
- | var obj1 = scene.getObjectByName("ИмяМоегоОбъекта"); | + | Примером программы на vJS может служить следующий код: |
- | obj1.onPress = function() | + | |
- | { | + | var obj1 = scene.getObjectByName("ИмяМоегоОбъекта"); |
- | // сделать что-нибудь, если нажали на объект | + | obj1.onPress = function() |
- | } | + | { |
+ | // сделать что-нибудь, если нажали на объект | ||
+ | } | ||
Ссылка на объект получается с помощью вызова метода getObjectByName глобального объекта scene. Обычно единственный параметр этой функции является фиксировано заданной строкой. Однако, возможно формирование имени объекта на лету в строковую переменную. Работа программы не начинается до тех пор, пока все объекты, используемые программой не будут загружены. Если вы используете обращения к объектам по именам из строковых переменных, то рекомендуется во избежание некорректной работы вашей программы в начале программы разместить вызовы метода requireObject глобального объекта scene. Выполнение программы также не начнется, пока объекты, имена которых будут перечислены в вызовах requireObject, не будут загружены. | Ссылка на объект получается с помощью вызова метода getObjectByName глобального объекта scene. Обычно единственный параметр этой функции является фиксировано заданной строкой. Однако, возможно формирование имени объекта на лету в строковую переменную. Работа программы не начинается до тех пор, пока все объекты, используемые программой не будут загружены. Если вы используете обращения к объектам по именам из строковых переменных, то рекомендуется во избежание некорректной работы вашей программы в начале программы разместить вызовы метода requireObject глобального объекта scene. Выполнение программы также не начнется, пока объекты, имена которых будут перечислены в вызовах requireObject, не будут загружены. | ||
- | Для того, чтобы задать имя объекта, выделите его с помощью инструмента размещения объектов. Нажмите кнопку вызова настройки свойств | + | Для того, чтобы задать имя объекта, выделите его с помощью инструмента размещения объектов. Нажмите кнопку вызова настройки свойств.\\ |
+ | {{:jazyk:2_button.png}} | ||
- | В появившемся окне выберите вкладку общих свойств. | + | В появившемся окне выберите вкладку общих свойств.\\ |
+ | {{:jazyk:2_window.png}} | ||
и введите нужное имя. | и введите нужное имя. | ||
У 3D-объекта существует несколько стандартных событий, на которые вы можете задать обработчики: | У 3D-объекта существует несколько стандартных событий, на которые вы можете задать обработчики: | ||
- | • onLoad – объект загружен (геометрия объекта, однако возможно, что текстуры еще подгружаются) | + | * onLoad – объект загружен (геометрия объекта, однако возможно, что текстуры еще подгружаются); |
- | • onPress – нажата кнопка мыши на объекте | + | * onPress – нажата кнопка мыши на объекте; |
- | • onRelease – кнопка мыши отпущена на объекте | + | * onRelease – кнопка мыши отпущена на объекте; |
- | • onReleaseOutside – кнопка мыши отпущена вне объекта | + | * onReleaseOutside – кнопка мыши отпущена вне объекта; |
- | • onRollOver – указатель мыши попал на объект | + | * onRollOver – указатель мыши попал на объект; |
- | • onRollOut – указатель мыши вышел из объект | + | * onRollOut – указатель мыши вышел из объект; |
- | • onKeyDown – нажата клавиша клавиатуры | + | * onKeyDown – нажата клавиша клавиатуры; |
- | • onKeyUp – отпущена клавиша клавиатуры | + | * onKeyUp – отпущена клавиша клавиатуры. |
В случае обработки клавиатурных событий код нажатой клавиши можно получить с помощью свойств и методов глобального объекта Key: | В случае обработки клавиатурных событий код нажатой клавиши можно получить с помощью свойств и методов глобального объекта Key: | ||
- | • Key.keyCode – код нажатой клавиши | + | * Key.keyCode – код нажатой клавиши; |
- | • Key.getAscii() – возвращает код нажатой клавиши в раскладке ASCII | + | * Key.getAscii() – возвращает код нажатой клавиши в раскладке ASCII; |
- | • Key.getUnicode() – возвращает код нажатой клавише в кодировке UTF8 | + | * Key.getUnicode() – возвращает код нажатой клавише в кодировке UTF8; |
- | • Key.shiftKey – нажата ли клавиша Shift | + | * Key.shiftKey – нажата ли клавиша Shift; |
- | • Key.shiftLeft – нажата ли левая клавиша Shift | + | * Key.shiftLeft – нажата ли левая клавиша Shift; |
- | • Key.ctrlKey – нажата ли клавиша Ctrl | + | * Key.ctrlKey – нажата ли клавиша Ctrl; |
- | • Key.ctrlLeft – нажата ли левая клавиша Ctrl | + | * Key.ctrlLeft – нажата ли левая клавиша Ctrl; |
- | • Key.altKey – нажата ли клавиша Alt | + | * Key.altKey – нажата ли клавиша Alt; |
- | • Key.altLeft – нажата ли левая клавиша Alt | + | * Key.altLeft – нажата ли левая клавиша Alt. |
Для сравнения значения свойства Key.keyCode c наиболее популярными клавишами можно использовать следующие константы: | Для сравнения значения свойства Key.keyCode c наиболее популярными клавишами можно использовать следующие константы: | ||
- | • Key.BACKSPACE – кнопка BackSpace | + | * Key.BACKSPACE – кнопка BackSpace; |
- | • Key.CAPSLOCK – кнопка CapsLock | + | * Key.CAPSLOCK – кнопка CapsLock; |
- | • Key.DELETEKEY – кнопка Delete | + | * Key.DELETEKEY – кнопка Delete; |
- | • Key.DOWN – кнопка со стрелкой вниз | + | * Key.DOWN – кнопка со стрелкой вниз; |
- | • Key.END – кнопка End | + | * Key.END – кнопка End; |
- | • Key.ENTER – кнопка Enter | + | * Key.ENTER – кнопка Enter; |
- | • Key.ESCAPE – кнопка Escape | + | * Key.ESCAPE – кнопка Escape; |
- | • Key.HOME – кнопка Home | + | * Key.HOME – кнопка Home; |
- | • Key.INSERT – кнопка Insert | + | * Key.INSERT – кнопка Insert; |
- | • Key.LEFT – кнопка со стрелкой влево | + | * Key.LEFT – кнопка со стрелкой влево; |
- | • Key.PGDN – кнопка PageDown | + | * Key.PGDN – кнопка PageDown; |
- | • Key.PGUP – кнопка PageUp | + | * Key.PGUP – кнопка PageUp; |
- | • Key.RIGHT – кнопка со стрелкой вправо | + | * Key.RIGHT – кнопка со стрелкой вправо; |
- | • Key.SPACE – кнопка пробела | + | * Key.SPACE – кнопка пробела; |
- | • Key.TAB – кнопка табуляции | + | * Key.TAB – кнопка табуляции; |
- | • Key.UP – кнопка со стрелкой вверх | + | * Key.UP – кнопка со стрелкой вверх. |
Чтобы события нажатия клавиш приходили вашему 3D-объекту, необходимо подписать его на получений событий от клавиатуры принудительно с помощью команды Key.addListener( obj3d); | Чтобы события нажатия клавиш приходили вашему 3D-объекту, необходимо подписать его на получений событий от клавиатуры принудительно с помощью команды Key.addListener( obj3d); |