2011-10-18 16 views
2

ボタンを追加してBoxBlurEffectを追加し、次の属性をBoxBlurEffect1に設定しました。Delphi Firemonkeyのマウスイベントアニメーション

//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を設定します。これがfalseの場合、アニメーション化されていないため、突然終了値になるためです。

私はそれを真に設定しました。しかし、今では、一度アニメーション化して停止するだけでなく、(名前のとおり)ループしています。

また、マウスを離したときに停止値から開始値までアニメーションしたい(1回のみ)。マウスが離れるか入ったとき、新しいアニメーションは最大値または最小値ではなく、現在の値から開始する必要があります。

+1

理由は何か - 1 – VibeeshanRC

答えて

6

トリガーは常に私が...

どちらも期待通りあなたはこのようにそれを行うことができます動作しません:

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 
+0

トリガのバグですか、それとも正しく使用するのか分かりません – VibeeshanRC

+1

ありがとうございます。 firemonkeyと思っていたのは、1行のコードなしでアニメーションを開発できるほどスマートです。私たちは別々のGUIデザイナーを持つことができます – VibeeshanRC

+2

わかりませんが、私はトリガーがアニメーション/効果のチェック/転送が1つのサブレベルにしか及ばないと思います...そのため、親の影響をマウスが検出します。効果とその効果は、子供に転送することを忘れて...(しかし、私が言ったように..確かに私の推測...) – Whiler

関連する問題