Расширяете родной GamepadAPI? - PullRequest
0 голосов
/ 28 мая 2019

Я пытаюсь расширить родной GamepadAPI для включения пользовательского кода контроллера.

Используя TypeScript, я реализовал простую функцию для отправки события «gamepadconnected».

    // simulate gamepadconnected event
    function dispatchGamepadConnectedEvent() {
        let gamepad = Object.create(Gamepad.prototype);
        console.log(gamepad);
        let event = new GamepadEvent('gamepadconnected', {
            gamepad: gamepad
        })
        window.dispatchEvent(event);
        console.log('Gamepad connect event dispatched.');
    }

Однако при отправке события я получаю сообщение об ошибке:


Gamepad {}axes: (...)buttons: (...)connected: (...)id: (...)index: (...)mapping: (...)timestamp: (...)vibrationActuator: (...)__proto__: Gamepad

extension.ts:37 Uncaught TypeError: Failed to construct 'GamepadEvent': member gamepad is not of type Gamepad.
    at dispatchGamepadConnectedEvent (extension.ts:37)
    at extension.ts:48

Несмотря на то, что экземпляр объекта Gamepad выглядит нормально, тип Gamepad неверен. Почему это так? Как я могу создать новый правильный объект Gamepad для запуска нативного события?

...