-
Notifications
You must be signed in to change notification settings - Fork 22.4k
/
index.md
74 lines (55 loc) · 1.9 KB
/
index.md
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
---
title: "XRInputSourceArray: entries() method"
short-title: entries()
slug: Web/API/XRInputSourceArray/entries
page-type: web-api-instance-method
status:
- experimental
browser-compat: api.XRInputSourceArray.entries
---
{{APIRef("WebXR Device API")}}{{SeeCompatTable}}
The {{domxref("XRInputSourceArray")}} interface's
**`entries()`** method returns a JavaScript
[`iterator`](/en-US/docs/Web/JavaScript/Reference/Iteration_protocols)
which can then be used to iterate over the key/value pairs in the input source
array. Each item in the array is an {{domxref("XRInputSource")}} object.
Most frequently, you will use this in tandem with statements such as
[`for...of`](/en-US/docs/Web/JavaScript/Reference/Statements/for...of).
## Syntax
```js-nolint
entries()
```
### Parameters
None.
### Return value
An [`iterator`](/en-US/docs/Web/JavaScript/Reference/Iteration_protocols)
which can be used to walk through the list of `XRInputSource` objects
included in the input source array.
## Examples
This example snippet gets the list of inputs for a session and tries to handle each
type of input device it supports using.
```js
let sources = xrSession.inputSources;
for (const input of sources.entries()) {
if (input.gamepad) {
checkGamepad(input.gamepad);
} else if (
input.targetRayMode === "tracked-pointer" &&
input.handedness === player.handedness
) {
/* Handle main hand controller */
handleMainHandInput(input);
} else {
/* Handle other inputs */
}
}
```
For each input in the list, gamepad inputs are dispatched to
a `checkGamepad()` with the input's {{domxref("Gamepad")}} object, taken from
its {{domxref("XRInputSource.gamepad", "gamepad")}} property, as an input
For other devices, we look for `tracked-pointer` devices in the player's
main hand, dispatching those to a `handleMainHandInput()` method.
## Specifications
{{Specifications}}
## Browser compatibility
{{Compat}}