Tengo un CAEmitterLayer
animado a lo largo de un camino bezier (forma cerrada, como un '8', de cuatro puntos de control) con un CAKeyframeAnimation
. Ahora quiero controlar la animación con una diapositiva de un dedo táctil a lo largo (pero no necesariamente en) la ruta. ¿Cómo es esto posible y esto es posible?¿Cómo controlar CAKeyframeAnimation con gesto táctil?
Respuesta
Hacer una variable CGpoint click;
para recordar su punto de "arrastre" inicial, a continuación, crear un controlador local de NSEvent
...
[NSEvent addLocalMonitorForEventsMatchingMask: NSMouseMovedMask
| NSLeftMouseDownMask
handler:^(NSEvent *e) {
if (e.type == NSLeftMouseDown) click = e.locationInWindow;
else "yourDelta" = click - e.locationInWindow; // pseudoCode
return e;
}];
"yourDelta" es el desplazamiento de ese punto inicial desde la ubicación actual ... también puede obtener resultados similares con eventos de desplazamiento, monitoreando NSEventScrollWheelMask
... y mirando los valores e.deltaX
y e.deltaY
.
Editar: No estoy tan familiarizado con el manejo de eventos en iOS ... pero la misma técnica podría aplicarse con controladores de eventos normales ... es decir.
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent*)e {
click = [e locationInView:_yourView];
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent*)e {
"yourDelta" = click - [e locationInView:_yourView]; // pseudoCode
}
En cuanto a "buscar" la animación .. Una manera posible es simplemente [layer addAnimation:theNewAnimation]
, usando sus anteriores toValue
's, pero en lugar de basar las fromValue
' s de 0, o su modelo ... layer
uso sus valores de layer.presentationLayer
en su lugar? Es difícil de decir sin ver el contenido completo de su CAKeyframeAnimation
.
Al estar etiquetado con 'cocoa-touch', asumí que el OP estaba buscando una forma de hacerlo en un dispositivo con iOS. ¿Hay forma de 'buscar' la CAKeyframeAnimation en función del valor delta? – Marc
- 1. ¿Cómo puedo animar CATransform3Ds con CAKeyframeAnimation?
- 2. ¿Cómo funciona CAKeyframeAnimation Scale?
- 3. Detención en curso CAKeyframeAnimation
- 4. Dibujando una ruta con CAKeyFrameAnimation en iPhone
- 5. Pan gesto interfiere con UISlider
- 6. ¿Cómo especificar el selector cuando CAKeyframeAnimation finaliza?
- 7. Cocos2d manejo táctil con varias capas
- 8. ¿Cómo implemento un gesto de saludo en kinect?
- 9. WPF admite pantalla táctil o multi-táctil?
- 10. ¿Cómo puedo controlar una carpeta con Cocoa?
- 11. Desactivar reconocedor gesto
- 12. Pan Gesto Fin
- 13. cómo detectar deslizar la dirección del gesto?
- 14. Cómo capturar el gesto Tap en MKMapView
- 15. Comando de simulación táctil con Java
- 16. Extracción CAKeyframeAnimation no libera la memoria
- 17. Cómo animar a CoreGraphics Dibujo de forma mediante CAKeyframeAnimation
- 18. cocos2d-IOS - Gesto reconocedores
- 19. golpe fuerte gesto iPhone
- 20. Gesto en listview android
- 21. Haciendo UILabel táctil
- 22. Cómo controlar el tamaño de un botón de radio con apariencia "Botón"
- 23. Android NYTimes Flagelo Animación/Gesto
- 24. cuándo usar CABasicAnimation y CAKeyFrameAnimation y CGAffineTransform?
- 25. ¿Cómo puedo desactivar la detección táctil?
- 26. ¿Cómo obtener el tamaño táctil en iOS?
- 27. Método jQuery independiente "táctil"?
- 28. Windows 8 - Cómo descartar el teclado táctil?
- 29. acciones reconocedor y botón Gesto
- 30. Efecto de desplazamiento con gesto de deslizar en iOS
¿Quiere decir emitir partículas desde donde el usuario está arrastrando su dedo? Además, ¿qué has intentado? –
Soy muy nuevo en Objective-C y no tengo idea de cómo dirigir una animación (que sea un CAEmitterLayer o un UIImageView o capa) a lo largo de una ruta con un movimiento táctil. Sería feliz con cada pequeña sugerencia ... Traté de usar una imagen de máscara que coloqué sobre el camino que me decía que el dedo estaba en o encima del camino pero también las partículas emiten además del camino. – headkit
¿Por qué no simplemente cambia la posición de la capa del emisor a la posición del dedo del usuario estableciendo la propiedad de posición? Obteniendo el punto donde el usuario no es difícil. –