{{indexmenu_n>1}} =====Типовая программа. Именование объектов. Перехват событий объектов===== Типовая программа состоит из следующих шагов:\\ 1. Получить ссылки на управляемые объекты.\\ 2. Назначить обработчики необходимых событий для этих объектов. Примером программы на vJS может служить следующий код: var obj1 = scene.getObjectByName("ИмяМоегоОбъекта"); obj1.onPress = function() { // сделать что-нибудь, если нажали на объект } Ссылка на объект получается с помощью вызова метода getObjectByName глобального объекта scene. Обычно единственный параметр этой функции является фиксировано заданной строкой. Однако, возможно формирование имени объекта на лету в строковую переменную. Работа программы не начинается до тех пор, пока все объекты, используемые программой не будут загружены. Если вы используете обращения к объектам по именам из строковых переменных, то рекомендуется во избежание некорректной работы вашей программы в начале программы разместить вызовы метода requireObject глобального объекта scene. Выполнение программы также не начнется, пока объекты, имена которых будут перечислены в вызовах requireObject, не будут загружены. Для того, чтобы задать имя объекта, выделите его с помощью инструмента размещения объектов. Нажмите кнопку вызова настройки свойств.\\ {{:jazyk:2_button.png}} В появившемся окне выберите вкладку общих свойств.\\ {{:jazyk:2_window.png}} и введите нужное имя. У 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); Подписка и отписка клавиатурных событий может использоваться как гибкое и мощное средство определения того, какой объект должен реагировать на клавиатурный ввод в текущий момент времени.