FMX 里的动画做起来简单So easy! TFloatAnimation 不能对一些整数类型的属性做动态效果。
实际上,我们并不需要太沮丧,毕竟天生我材必有用,今天吃饱了明天还饿,这只是因为官方忘了将TIntAnimation注册到面板上而已,我们只需要动态创建它并设置相关属性。
unit Unit1;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes,
System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Ani,
FMX.Objects, FMX.Controls.Presentation, FMX.StdCtrls;
type
TForm1 = class(TForm)
Image1: TImage;
FloatAnimation1: TFloatAnimation;
Button1: TButton;
FloatAnimation2: TFloatAnimation;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
FFormAnimation: TIntAnimation;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.fmx}
procedure TForm1.Button1Click(Sender: TObject);
begin
FFormAnimation.Start;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
FFormAnimation := TIntAnimation.Create(Self);
FFormAnimation.Parent := Self;
FFormAnimation.StartValue := 0;
FFormAnimation.StopValue := (Screen.Width - Width) div 2;
FFormAnimation.Interpolation := TInterpolationType.Bounce;
FFormAnimation.Duration:=2;
FFormAnimation.PropertyName:='Left';
Top := (Screen.Height - Height) div 2;
end;
end.好了,现在就一切OK。
