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