Delphi Firemonkeyのマウスイベントアニメーション
-
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を設定します。なぜなら、それが誤っている場合、それはアニメーション化されていないため、突然値を終了するようになります。
だから私はそれを本当に設定しました。しかし、今では、一度アニメーション化して停止するだけでなく(説明されているように)ループしています。
また、マウスを離れるときに(1回だけ)、値を起動するために停止値からアニメーション化することを望んでいます。マウスが去るか入ると、新しいアニメーションは最大値または最小値からではなく現在の値から開始する必要があります。
解決
トリガーも常に機能するとは限りません...
あなたはこのようにそれをすることができます:
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