Hello, I have been working on the scroller component to improve the framerate of the scrolling operations with an optimization based on the blitting technique. In this experiment, the Scroller component has a new boolean property named cacheViewport.
When cacheViewPort is set to true, all scrolling operations are performed according to the following cycle : 1 - A bitmap copy of the viewport is made just before the next scrolling operation (large viewports are cached in multiple tiles if necessary) 2 - When the user starts a scrolling operation, the actual viewport is replaced by its bitmap version and the scrolling is executed by drawing the viewport according to its verticalScrollPosition and horizontalScrollPosition properties. 3 - At the end of the scroll operation, the bitmap viewport is replaced by its actual version. 4 - Between each scrolling operations, when the user interacts with the viewport content, a process mark as 'dirty' every regions of the viewport that are likely to have changed during those interactions. Every dirty region is redrawn before the next scrolling operation. Pros : - 60 FPS scrolling, even on old devices. - Performance is no longer dependant on the viewport complexity. - Can be used with the list component if it contains a moderate number of rows (useVirtualLayout must be set to false though) Cons : - There is a slight lag (dependant on the device processor) during the viewport rasterization and the process of redrawing every dirty regions. - Doesn't support virtualized layouts. - Animated elements of the viewport freezes during scrolling operations. - Render mode must be set to <renderMode>gpu</renderMode> on the current version. - Depending on its dimensions, the viewport rasterization process can consume large amounts of memory. It works well, even on old phones. I tested it on a nexus S, a nexus 4 and a nexus 7 (however, I didn’t made tests on ios devices). A demo application can be downloaded on the android play market here : https://play.google.com/store/apps/details?id=air.fr.after24.ViewportCacheDemo <https://play.google.com/store/apps/details?id=air.fr.after24.ViewportCacheDemo> I opened a Jira ticket with the source code FLEX-34821 <https://issues.apache.org/jira/browse/FLEX-34821> -- View this message in context: http://apache-flex-development.2333347.n4.nabble.com/Flex-Scroller-optimization-tp46074.html Sent from the Apache Flex Development mailing list archive at Nabble.com.