我想知道你们中是否有人曾经解决过这些问题?
问题很简单: 有许多帧在运行时创建它们。但是当我在这上面使用动画时,口吃或跳过整个动画。
这只发生在所有经过测试的Android移动设备和第一个动画请求上!
对于使用该应用程序的用户而言,这不是一件好事,也不知道该应用程序太重或编程不当。
简单代码:
procedure TForm1.ButtonClick(Sender: TObject);
var
MyFrame: TMyFrame;
begin
MyFrame := TMyFrame.Create( Form1 )
MyFrame.Parent := Form1;
MyFrame.PrepareForPaint; // nothing changes
MyFrame.Position.X := Form1.Width;
MyFrame.BringToFront;
TAnimator.AnimateFloat( MyFrame, 'Position.X', 0 );
end;
更新
我希望有一些迹象可以找到一个解决方案。
问题不在于动画,而在于asyncrone的指令。
procedure TForm1.ButtonClick(Sender: TObject);
var
MyFrame: TMyFrame;
begin
MyFrame := TMyFrame.Create( Form1 )
MyFrame.Parent := Form1;
MyFrame.PrepareForPaint; // nothing changes
MyFrame.Position.X := Form1.Width;
MyFrame.BringToFront;
< - 在此指令之后,帧实际上尚未完全创建。我可以验证它的可见属性是否为false,并且在某些情况下它没有被称为事件ApplyStyleLookup
TAnimator.AnimateFloat( MyFrame, 'Position.X', 0 );
< - 此时动画开始,同时,通过产生令人不愉快的视觉效果并偶尔重新创建框架来创建框架
end;
我试图了解框架何时完全创建,但没有成功。