Hi, this should be a good starting point to tuning your item render: http://solu-pedia.com/2013/04/10/apache-flex-mobile-app-performance-tuning-articles/
Cheers Angelo www.redtulp.com 2013/9/3 Peter Ent <[email protected]> > Each time the itemRenderer's data is set, you are wiping out all of the > button in the TileGroup and re-creating them. That's a source of your slow > scrolling performance. > > As nice-and-easy as your approach is, it is better to add some more code > complexity and re-use those buttons. > > Here's one example: you could, for each itemRenderer, have a cache of > previously created buttons, which would be empty the first time the > itemRenderer was used. If you need 10 buttons but have less than 10 (e.g., > 0 the first time), "use" the buttons (explained below) you have previously > created and create the remaining, being sure to also put references to > them into your cache. > > If you have more buttons in your cache than you need, "use" the amount you > need and "deactivate" the ones you don't. That is, if you have 20 buttons > in the cache but only need 8, you'll deactivate the remaining 12. > > So "use" means to set a button's visible and includeInLayout properties to > true. "Deactivate" means to set a button's visible and includeInLayout > properties to false. > > I think an approach like this would have better performance for you. If > you can avoid setting includeInLayout, it will be even better since all > you will be doing is hiding/showing the buttons, but the itemRenederers > might not look right if you also don't remove them from the layout. > > Peter Ent > Flex SDK Team > Adobe Systems > > On 9/3/13 9:29 AM, "Federico De Maddalena" <[email protected]> > wrote: > > >Hi Ben > >I'm developing a mobile project, not desktop! > >Images in use are very small. > >Usevirtuallayout is set on true. > >The code is here: > > > > <fx:Script> > > <![CDATA[ > > import spark.components.Button; > > import spark.core.ContentCache; > > > > import events.SchedaEvent; > > > > static public const s_imageCache:ContentCache=new > ContentCache(); > > > > override public function set > data(value:Object):void > > { > > super.data=value; > > lezione.text=value.titolo; > > > img.source="img/lez/"+value.lezione+"g.png"; > > > > schede.removeAllElements(); > > for(var i:int=0; i<value.schede.length; > i++) > > { > > var button:Button=new Button(); > > button.label=String(i+1); > > button.id=value.schede[i]; > > button.height=40; > > button.width=40; > > > button.addEventListener(MouseEvent.CLICK, handleMouseClick); > > schede.addElement(button); > > } > > } > > > > private function > handleMouseClick(event:MouseEvent):void > > { > > sendEvent(parseInt(event.currentTarget.id > )); > > } > > > > private function sendEvent(id:int):void > > { > > var e:SchedaEvent=new > SchedaEvent(SchedaEvent.LOAD_SCHEDA); > > e.Id=id; > > > > this.owner.dispatchEvent(e); > > } > > ]]> > > </fx:Script> > > > > <s:HGroup width="100%" height="100%" paddingTop="3"> > > <s:VGroup height="100%" width="20%" verticalAlign="top" > >horizontalAlign="center"> > > <s:Image width="80%" height="80%" id="img" > >contentLoader="{s_imageCache}"/> > > </s:VGroup> > > <s:VGroup height="100%" width="70%"> > > <s:Label width="100%" height="20%" id="lezione"/> > > <s:TileGroup width="100%" height="80%" > id="schede"/> > > </s:VGroup> > > > > </s:HGroup> > > > >-----Messaggio originale----- > >Da: Ben Smeets [mailto:[email protected]] > >Inviato: martedì 3 settembre 2013 15.22 > >A: [email protected] > >Oggetto: Re: Improve spark List performance > > > >How many rows in the list? (i.c.w. useVirtualLayout) > > > >The setup you mention shouldn't be a problem I think (unless the image > >you talk about is 200MB a pop), but depends on the implementation > >(details). E.g., if the buttons are created every scroll, instead of > >reused, that might be a cause. > > > >Any code you can share, can help (me at least) to track down the culprit. > > > >Not a guru here though, so maybe others will know off the top of their > >heads :) > > > >Ben > > > >P.S. We are talking desktop app here right? Mobile is a different beast > >all together (for me). > > > > > > > >On 3 sep. 2013, at 15:16, Federico De Maddalena > ><[email protected]> wrote: > > > >> Hi! I'm working on a mobile project. > >> I created a spark List, which item renderer is an extension of > >> ItemRenderer. Each of my item renderer contains one spark Image, one > >> Label and a number of small buttons which varies from 3 to 20. > >> Now, scrolling the list is terribly slow. There are ways to improve > >> scroll speed? I spent a lot of time but without success. > >> Regards > >> federico > >> > > > > -- Angelo Lazzari mobile: 0039 347 0090 452 mail: [email protected] ---------------------------- Verificate la corrispondenza del destinatario; in caso contrario vogliate notificare ciò al mittente e, consci della responsabilita'per l'uso indebito, cancellare il messaggio e sue copie / Verify the correspondence of the addressee; otherwise, notify that to the sender and, conscious of the responsibility for the undue use, destroy the message and its copies. ----------------------------
