Skip to content

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étodoDescripció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'])
  }
})