Animación de eventos de ratón en Delphi Firemonkey
-
25-10-2019 - |
Pregunta
Agregué un botón y le agregué un boxblureffect y configuré los siguientes atributos al BoxBlurEffect1
.
//extracted form fmx file
object BoxBlurEffect1: TBoxBlurEffect
Trigger = 'IsMouseOver=true'
Enabled = False
BlurAmount = 0.009999999776482582
object FloatAnimation1: TFloatAnimation
AnimationType = atInOut
Enabled = True
Duration = 1.000000000000000000
Loop = True
Trigger = 'IsMouseOver=true'
TriggerInverse = 'IsMouseOver=false'
StartValue = 0.009999999776482582
StopValue = 10.000000000000000000
PropertyName = 'BlurAmount'
end
end
Establecí bucle = true porque si es falso, no está animando, de repente va a finalizar el valor.
Así que lo configuré en verdad. Pero ahora está en bucle (como se describe el nombre) no solo animando una vez y deteniéndose.
Y también quiero que anime desde el valor de parada hasta el valor de inicio cuando dejo el mouse (solo una vez). Cuando mi mouse se va o entra, la nueva animación debe comenzar desde el valor actual no desde el valor máximo o mínimo.
Solución
El gatillo no siempre funciona como yo tampoco espero ...
Puedes hacerlo así:
procedure TForm2.Button1MouseEnter(Sender: TObject);
begin
BoxBlurEffect1.AnimateFloat('BlurAmount', 10, 1);
end;
procedure TForm2.Button1MouseLeave(Sender: TObject);
begin
BoxBlurEffect1.AnimateFloat('BlurAmount', 0, 1);
end;
Sin tfloatanimación:
object Button1: TButton
Position.Point = '(264,192)'
Width = 80.000000000000000000
Height = 22.000000000000000000
OnMouseEnter = Button1MouseEnter
OnMouseLeave = Button1MouseLeave
TabOrder = 1
StaysPressed = False
IsPressed = False
Text = 'Button1'
object BoxBlurEffect1: TBoxBlurEffect
BlurAmount = 0.009999999776482582
end
end
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow