Delphi Firemekey中的鼠标活动动画
-
25-10-2019 - |
题
我添加了一个按钮并在其上添加了一个boxblureffect,并将以下属性设置为 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
我设置loop = true,因为如果是错误的,它不是动画,它突然将变为最终值。
所以我将其设置为真。但是现在,它正在循环(如所描述的名称)不仅是动画一次并停止。
而且,我也希望它从停止值动画,以便在我离开鼠标时开始值(仅一次)。当我的鼠标离开或进入时,新动画必须从当前值开始,而不是从最大值或最小值开始。
解决方案
触发器并不总是能起作用,因为我也不希望...
您可以这样做:
procedure TForm2.Button1MouseEnter(Sender: TObject);
begin
BoxBlurEffect1.AnimateFloat('BlurAmount', 10, 1);
end;
procedure TForm2.Button1MouseLeave(Sender: TObject);
begin
BoxBlurEffect1.AnimateFloat('BlurAmount', 0, 1);
end;
没有tfloatanimation:
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
不隶属于 StackOverflow