Типовая программа. Именование объектов. Перехват событий объектов

Типовая программа состоит из следующих шагов:
1. Получить ссылки на управляемые объекты.
2. Назначить обработчики необходимых событий для этих объектов.

Примером программы на vJS может служить следующий код:

var obj1 = scene.getObjectByName("ИмяМоегоОбъекта");
obj1.onPress = function()
{
  // сделать что-нибудь, если нажали на объект
}

Ссылка на объект получается с помощью вызова метода getObjectByName глобального объекта scene. Обычно единственный параметр этой функции является фиксировано заданной строкой. Однако, возможно формирование имени объекта на лету в строковую переменную. Работа программы не начинается до тех пор, пока все объекты, используемые программой не будут загружены. Если вы используете обращения к объектам по именам из строковых переменных, то рекомендуется во избежание некорректной работы вашей программы в начале программы разместить вызовы метода requireObject глобального объекта scene. Выполнение программы также не начнется, пока объекты, имена которых будут перечислены в вызовах requireObject, не будут загружены.

Для того, чтобы задать имя объекта, выделите его с помощью инструмента размещения объектов. Нажмите кнопку вызова настройки свойств.

В появившемся окне выберите вкладку общих свойств.

и введите нужное имя.

У 3D-объекта существует несколько стандартных событий, на которые вы можете задать обработчики:

В случае обработки клавиатурных событий код нажатой клавиши можно получить с помощью свойств и методов глобального объекта Key:

Для сравнения значения свойства Key.keyCode c наиболее популярными клавишами можно использовать следующие константы:

Чтобы события нажатия клавиш приходили вашему 3D-объекту, необходимо подписать его на получений событий от клавиатуры принудительно с помощью команды Key.addListener( obj3d);

Чтобы отписать 3D-объект от клавиатурных событий используете команду Key.removeListener( obj3d);

Подписка и отписка клавиатурных событий может использоваться как гибкое и мощное средство определения того, какой объект должен реагировать на клавиатурный ввод в текущий момент времени.