Selective Tracking
Cuando tienes múltiples targets cargados pero solo quieres detectar algunos en un momento dado, usa setActiveTargets().
Todos los targets permanecen cargados en memoria, pero solo los activos son detectados. Esto es útil para experiencias guiadas, flujos multi-paso o optimización de rendimiento.
Uso
javascript
// Cargar todos los targets
await tracker.addTarget('marker1', img1)
await tracker.addTarget('marker2', img2)
await tracker.addTarget('marker3', img3)
// Arrancar (todos los targets activos por defecto)
await tracker.start()
// Activar solo marker2
tracker.setActiveTargets(['marker2'])
// Cambiar a otro target
tracker.setActiveTargets(['marker1'])
// Activar varios a la vez
tracker.setActiveTargets(['marker1', 'marker3'])Comportamiento
- Si un target está siendo trackeado y no está en la nueva lista activa, se pierde inmediatamente (emite evento
lost) - El target sigue cargado en memoria y puede reactivarse sin recargar la imagen
- Por defecto, todos los targets están activos tras
start()
Métodos relacionados
| Método | Descripción |
|---|---|
setActiveTargets(ids) | Establece qué targets están activos |
isTracking(id) | Comprueba si un target específico está siendo trackeado |
getTrackedTargets() | Lista de IDs de targets actualmente trackeados |
Ejemplo: experiencia guiada
javascript
// Paso 1: solo detectar el primer marker
tracker.setActiveTargets(['intro'])
tracker.on('found', (id) => {
if (id === 'intro') {
// Cuando el usuario ve el intro, activar el siguiente
tracker.setActiveTargets(['paso2'])
}
})