Программа на vJS может эксклюзивно захватить объект. В этом случае аватар пользователя, на компьютере которого происходит выполнение фрагмента vJS-программы, становится владельцем объекта. Если у объекта есть владелец, то только он может менять его синхронизируемые свойства. Другой пользователь не сможет захватить объект, у которого уже есть владелец. Если владелец объекта покинул виртуальный мир, то объект освобождается от владельца.
Для работы с эксклюзивным захватом объектов предназначены следующие методы 3D-объекта:
captureObject – попытаться захватить 3D-объект эксклюзивно, если заранее известно, что это невозможно, то функция возвращает false. Если одновременно несколько аватаров попытаются захватить 3D-объект, то один аватар осуществит захват, а остальным придет событие onCaptureLost (см. ниже).
freeObject – освободить объект.
isFree – возвращает булевый статус, захвачен ли данный объект в данный момент времени.
getOwner – возвращает строку с логином пользователя, который захватил объект. Если объект свободен, то возвращается пустая строка.
isCapturedByMe – возвращает булевый статус, захвачен ли объект текущим пользователем.
Событие onCaptureLost 3D-объекта вызывается, если: