Hi. yes, as you say, the two actions should be placed on one event. The point is to give the screen change a delay value that is as long as your animation. I made a video for it.
So, the graphics is done. It works really great in squareline but that is not the case when it is flashed to the display. The smooth graphics is now jumpy and jittery. I’m trying to solve it as of now. I’m using ESP32 S3 Touch LCD, much appreciated if you could help.
Your hardware is probably not powerful enough to play this animation, or your LVGL memory settings are not set correctly, or if you are driving the display with SPI, you should increase the SPI bus frequency. Try starting only the screen where the blue and red panels are animated, see how much it hangs and what happens.
Is your screen 800x480 ? Then little match course for full screen frame change is required transfer 800x480x2 bytes for RGB16bit. = around 800000 B
For crossfade x2 on every render phase read and calc 1.6MB plus transfer 0,8MB , smooth anim require 20FPS minim result memory trafic is 20x2,4MBPS = 48MBPS. Internal RAM can do this speed, but for example QSPI flash stored images can read only 20MBPS top = half of and result is half FPS on display . Next slow down is bad sw and hw … result is your video.
Some hints : A. dont crossfade fullscreen
B. dont mix big objects and animation.
C. reduce animated areas to max 300x300 pixels
…