← Les composants

<rr0-ufo>

La forme, et la lecture

Le plus léger : un canevas plus lecture/pause/boucle/déplacement. À utiliser là où une page ne fait que rejouer une forme déjà dessinée et ne veut pas de ciel derrière.

<rr0-ufo src="sighting.json"></rr0-ufo>
MembreNatureRôle
srcattributURL d'un enregistrement, chargée à la connexion et à chaque changement
sightingDatapropriétéL'enregistrement comme objet simple — à relire après modification, ou à poser au lieu d'utiliser src
sightingpropriété (lecture)Le modèle vivant : date et lieu réels, plus la chronologie de l'enregistrement
loadFromSrc(url)méthode (async)Ce que déclenche l'attribut. À attendre quand l'enregistrement doit être arrivé avant toute autre chose — jouer avant sa résolution trouve une chronologie de longueur nulle
play() / pause()méthodeDire quel état on veut, plutôt que basculer l'état courant
togglePlayPause()méthodeCe que font le bouton et le clic
playbackStatepropriété (lecture)"stopped", "playing" ou "paused"
currentTimepropriétéLa tête de lecture, dans les unités de la chronologie — pas des millisecondes réelles, voir positionLabel
seekableDurationpropriété (lecture)L'étendue que currentTime peut prendre
autoReplayEnabledpropriétéLa lecture en boucle, active par défaut. À mettre à false si vous voulez l'événement ended
positionLabel / durationLabelpropriété (lecture)Position et durée déjà mises en forme — heure réelle quand l'observation en énonce une
refresh()méthodeRelit la durée et repeint — à appeler après avoir modifié sighting.timeline de l'extérieur
canvasElement / rendererpropriété (lecture)Le <canvas>, et ce qui peint dessus
enableClickToPlaypropriétéSi un clic bascule la lecture et un double-clic le plein écran (les deux, ou aucun). À mettre à false là où le canevas vous sert à autre chose
fullscreenTargetpropriétéQuel élément le bouton plein écran agrandit. <rr0-scene> y met sa propre scène, pour que ce soit le ciel qui s'agrandisse et non la seule surcouche

Ce qu'il émet#

ÉvénementQuandOù l'écouter
endedUne fois, quand la lecture atteint la fin sans boucler. Ni à la pause, ni à un déplacement manuel jusqu'à la finN'importe où : il est bubbling et composed, donc il sort de <rr0-scene> et de <rr0-sighting> et atteint l'élément que vous avez posé sur la page. C'est ainsi qu'on enchaîne plusieurs enregistrements
timedisplaychangeQuand les compteurs basculent entre heure et temps écouléN'importe où, comme ci-dessus
timeupdateÀ chaque image de lecture et à chaque déplacement, avec detail.timeSur cet élément seulement. Il n'est ni bubbling ni composed : une page qui tient un <rr0-scene> doit passer par son ufoElement — il est destiné aux éléments qui composent celui-ci

L'intégrer#

<script type="module" src="https://ufoathome.org/lib/rr0-ufo.mjs"></script>
<rr0-ufo src="sighting.json"></rr0-ufo>

Ou, après npm install @rr0/ufoathome : import "@rr0/ufoathome/ufo". Le bundle pèse 16 Ko compressé et enregistre le tag lui-même — rien d'autre à appeler. Le hub dit ce que cela suppose par ailleurs, et partager une observation a l'exemple complet, à essayer et à copier.