> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Bouton

> Bouton

# Bouton

Contrôle de base qui peut répondre aux entrées tactiles du joueur. Il peut être stylisé avec des illustrations personnalisées pour l'arrière-plan et l'image de face.

## Propriétés

`type` - *"button"*. Spécifie le type de contrôle.

`action` - *chaîne*. [Action(s)](/fr-CA/reference/system/touchadaptationkit/types/game-streaming-touch-action) à appeler lorsqu'un joueur touche le bouton.

`enabled` - *booléen*, *facultatif*. La valeur par défaut est `true`. Définit l'état visuel du contrôle comme activé/désactivé. Un contrôle désactivé recevra toujours les entrées du joueur, mais ne modifiera *pas* son style visuel en fonction de ces entrées.

`pullAction` - *chaîne* ou  *objet*, *facultatif*. La ou les [actions](/fr-CA/reference/system/touchadaptationkit/types/game-streaming-touch-action) à appeler lorsqu'un joueur tire le bouton pendant un toucher. Lorsque l'action de traction est définie comme un objet, comme dans les exemples ci-dessous, le bouton de traction devient segmenté, de sorte que chaque élément du tableau `items` de l'action de traction affecte une action à ce segment. Les segments sont répartis uniformément autour du bouton, avec un maximum de 4 segments.

* Propriétés de l'action de traction segmentée (introduites dans la v4.1)

  * `type` - *"segmented"*. Spécifie que le type de l'action de traction est une action de traction segmentée.

  * `items` - *tableau*. Un tableau d'au plus 4 [actions](/fr-CA/reference/system/touchadaptationkit/types/game-streaming-touch-action), chacune étant appelée lorsqu'un joueur fait glisser ou tire un toucher jusqu'au bord du contrôle dans la direction de ce segment.

`toggle` - *booléen*, *facultatif*. La valeur par défaut est `false`.

* Si `false`, l'entrée du bouton est envoyée lorsqu'il est enfoncé et ne l'est pas lorsqu'il n'est pas enfoncé.
* Si `true`, chaque pression sur le bouton bascule l'envoi ou non de l'entrée pour la ou les actions correspondantes.

`visible` - *booléen*, *facultatif*. La valeur par défaut est `true`. Détermine si le contrôle est affiché au joueur pour qu'il puisse interagir avec celui-ci. Pour le modifier pendant le jeu, consultez [Modification des dispositions tactiles à l'aide de l'état du jeu](/fr-CA/build/core-features/common/game-streaming/building-touch-layouts/game-streaming-touch-changing-layouts-game-state#change_state).

`styles` - *objet*, *facultatif*. Personnalisation de la représentation visuelle du contrôle. Les styles sont représentés sous forme d'un objet par état pouvant être stylisé.

Les états suivants du contrôle de bouton peuvent être stylisés.

* `default` - Le style de base.
* `disabled` - Le style lorsque le contrôle est désactivé. S'il n'est pas spécifié, une transformation est appliquée au style par défaut lorsque le contrôle est désactivé afin qu'il paraisse désactivé.
* `idle` - Appliqué lorsque le joueur *n'interagit pas* avec le contrôle.
* `activated` - Appliqué lorsque le joueur touche le bouton.
* `pulled` - Appliqué lorsque le joueur touche et tire un bouton. Pour les actions de traction segmentées, seul le segment tiré reçoit le style de cet état; les autres segments conservent le style `activated`.
* `toggled` - Appliqué lorsque le bouton est dans un état basculé et que le joueur ne touche pas le bouton.

**Propriétés de style par état**

`opacity` - *nombre*, *facultatif*. L'opacité à appliquer au contrôle. La valeur par défaut est 1.0 pour tous les états, sauf `disabled`.

`faceImage` - *objet*, *facultatif*. Peut être soit une [icône](/fr-CA/reference/system/touchadaptationkit/types/game-streaming-touch-icon), soit une [ressource d'image](/fr-CA/reference/system/touchadaptationkit/types/game-streaming-touch-asset).

`background` - *objet*, *facultatif*. Peut être soit une [couleur](/fr-CA/reference/system/touchadaptationkit/types/game-streaming-touch-color), soit une [ressource d'image](/fr-CA/reference/system/touchadaptationkit/types/game-streaming-touch-asset). N'est pas visible dans les états inactif et désactivé.

**Dimensions des ressources**

Pour chacun des objets de style qui acceptent des ressources d'image, une ressource donnée est fournie à une résolution de base et à des échelles de 1.5x, 2.0x, 3.0x et 4.0x de cette résolution de base. La résolution d'une image donnée doit être inférieure ou égale aux résolutions maximales suivantes.

| Objet | @1.0x | @1.5x | @2.0x | @3.0x | @4.0x |
| :- | :- | :- | :- | :- | :- |
| faceImage | 60x60 | 90x90 | 120x120 | 180x180 | 240x240 |
| background | 60x60 | 90x90 | 120x120 | 180x180 | 240x240 |

## Remarques

Les boutons sont couramment utilisés pour permettre au joueur d'effectuer des actions qui seraient normalement réalisées à l'aide d'un ou de plusieurs boutons physiques de sa manette physique.

Utilisez plusieurs actions pour permettre au joueur de reproduire facilement des actions combinées (par exemple, appuyer simultanément sur le bouton gauche et le bouton droit de la tranche).

**Remarques sur le style**

Dans l'état `activated`, le `faceImage` est affiché 25 % plus petit.

Des étiquettes et un style par défaut pour la couleur d'arrière-plan sont fournis pour les boutons qui n'utilisent pas de ressources personnalisées et qui ont une seule action parmi `gamepadX`, `gamepadY`, `gamepadA` ou `gamepadB`.

## Exemples

#### Exemple 1 : Bouton de saut associé au bouton A

<img src="https://mintcdn.com/microsoft-4404708b/-_0FrcE2bDxzGxv-/images/gdk/reference/game-streaming-touch-control-images-button.gif?s=585c8746250b36534c236117851e82f4" alt="Utilisateur appuyant sur un bouton" width="160" height="160" data-path="images/gdk/reference/game-streaming-touch-control-images-button.gif" />

```JSON theme={null}
{
    "type": "button",
    "action": "gamepadA",
    "styles": {
        "default": {
            "faceImage": {
                "type": "icon",
                "value": "jump"
            }
        }
    }
}
```

#### Exemple 2 : Bouton d'accroupissement associé à l'appui simultané sur le bouton gauche et le bouton droit de la tranche

<img src="https://mintcdn.com/microsoft-4404708b/-_0FrcE2bDxzGxv-/images/gdk/reference/game-streaming-touch-control-images-button-2.gif?s=0c9485ee05b533ae100e8edaee6882b6" alt="Utilisateur appuyant sur un bouton associé à deux actions" width="160" height="160" data-path="images/gdk/reference/game-streaming-touch-control-images-button-2.gif" />

```JSON theme={null}
{
    "type": "button",
    "action": [ "leftBumper", "rightBumper"] ,
    "styles": {
        "default": {
            "faceImage": {
                "type": "icon",
                "value": "crouch"
            }
        }
    }
}
```

#### Exemple 3 : Bouton avec une image de face et une image d'arrière-plan personnalisées

<img src="https://mintcdn.com/microsoft-4404708b/-_0FrcE2bDxzGxv-/images/gdk/reference/game-streaming-touch-control-images-button-3.gif?s=4503a193449c834d72a50e19a111e9d2" alt="Utilisateur appuyant sur un bouton avec une ressource personnalisée" width="160" height="160" data-path="images/gdk/reference/game-streaming-touch-control-images-button-3.gif" />

```JSON theme={null}
{
    "type": "button",
    "action": "gamepadA",
    "enabled" : true,
    "styles": {
        "default": {
            "background": {
                "type": "asset",
                "value": "hex_background"
            },
            "faceImage": {
                "type": "asset",
                "value": "one"
            }
        },
        "activated": {
            "background": {
                "type": "asset",
                "value": "hex_background_glow"
            }
        }
    }
}
```

#### Exemple 4 : Action de traction segmentée avec un style personnalisé par segment

<Note>Pour styliser les boutons de traction segmentés, le tableau `pullIndicator` doit avoir la même longueur que la propriété `items` qui définit les segments. Autrement dit, chaque segment doit avoir une définition de style, ou `null` doit être utilisé pour omettre les remplacements de style pour un segment particulier.</Note>

<img src="https://mintcdn.com/microsoft-4404708b/-_0FrcE2bDxzGxv-/images/gdk/reference/game-streaming-touch-control-images-button-segmented-pull.gif?s=d28b3799cc728ed15d8af352b009bb46" alt="Utilisateur appuyant sur un bouton avec une action de traction segmentée." width="184" height="184" data-path="images/gdk/reference/game-streaming-touch-control-images-button-segmented-pull.gif" />

```JSON theme={null}
{
    "type": "button",
    "action": "gamepadA",
    "pullAction": {
       "type": "segmented",
       "items": [
          "gamepadB",
          "gamepadY"
       ]
    },
    "styles": {
        "default": {
           "pullIndicator": [
               {
                 "faceImage": {
                    "type": "icon",
                    "value": "sword"
                 }
               },
               {
                 "faceImage": {
                    "type": "icon",
                    "value": "block"
                 }
               }
            ]
        },
        "idle": {
           "pullIndicator": [
               null,
               {
                 "opacity": 0.5
               }
            ]
        }
    }
}
```

## Configuration requise

**Version minimale de la disposition :** 1.0+ (prise en charge du style à partir de 2.0+).

## Voir aussi

[Référence du Touch Adaptation Kit](/fr-CA/build/core-features/common/game-streaming/game-streaming-touch-touch-adaptation-kit-overview)


## Related topics

- [Étapes du test de validation des supports](/fr/publishing/game-publishing/concepts/certification/certification-media-validation-test-steps.md)
- [Étapes de test de validation des supports](/fr-CA/publishing/game-publishing/concepts/certification/certification-media-validation-test-steps.md)
- [Ressources d'accessibilité pour les développeurs](/fr/build/game-principles/accessibility/accessibility-resources.md)
- [Mises à niveau de compte](/fr-CA/services/playfab/pricing/account-upgrades.md)
- [Étiquettes de fonctionnalités d'accessibilité](/fr/build/game-principles/accessibility/accessibility-feature-tags.md)
