title: Flex 4.10 new features
body: <p>I have installed Flex 4.10.0 SDK for Flash Builder 4.7 (tried both MacOS and Windows) using the new <a href="http://flex.apache.org/installer.html" rel="nofollow noreferrer">Apache Flex SDK Installer</a> and loved how smoothly it has worked:</p>
  
  <p><img src="https://i.stack.imgur.com/LxfbS.png" alt="enter image description here"></p>
  
  <p>Also I'm excited that someone is still working on the Flex SDK (thank you!) - because for quite some time it looked abandoned.</p>
  
  <p><strong>My 3 questions:</strong></p>
  
  <ol>
  <li><p>Does anybody have a list of the (supposedly over fifteen?) new Spark components? I have only noticed one sofar: <code>mx.controls.Alert</code> -> <a href="http://flex.apache.org/asdoc/spark/components/Alert.html" rel="nofollow noreferrer">spark.components.Alert</a>. (And I have noticed that <code>spark.utils.MultiDPIBitmapSource</code> supports <code>source480dpi</code> which is great).</p></li>
  <li><p>Does anybody know, if there is a fix for the <code>spark.components.List</code> not remembering its scrolling position? Because currently <a href="https://www.facebook.com/appcenter/video-preferans" rel="nofollow noreferrer">in my Flex game</a> with 2 Lists updated by server I have to use custom skin and data group as explained <a href="http://flex4examples.wordpress.com/2010/06/18/flex-4-list-remembering-verticalscrollposition/" rel="nofollow noreferrer">in this nice blog</a>.</p></li>
  <li><p>Currently to scroll a <code>spark.components.List</code> to a bottom I have to use <a href="http://flexponential.com/2011/02/13/scrolling-to-the-bottom-of-a-spark-list/" rel="nofollow noreferrer">the following hack</a> and wonder if that issue has been approached too?</p>
  
  <pre><code>public static function scrollToBottom(list:List):void {
      // update the verticalScrollPosition to the end of the List
      // virtual layout may require us to validate a few times
      var delta:Number = 0;
      var count:int = 0;
  
      while (count++ &lt; 10) {
          list.validateNow();
          delta = list.layout.getVerticalScrollPositionDelta(NavigationUnit.END);
          list.layout.verticalScrollPosition += delta;
  
          if (delta == 0)
              break;
      }
  }
  </code></pre></li>
  </ol>
  
  <p><strong>UPDATE:</strong></p>
  
  <p>For the issue #3 I've created a <a href="https://issues.apache.org/jira/browse/FLEX-33660" rel="nofollow noreferrer">JIRA #33660</a> with a test case and screenshot attached. There were already similar bug reports, but they were closed by Adobe.</p>
  
  <p><strong>UPDATE 2:</strong></p>
  
  <p>For the issue #2 I haven't been able to create a simple test case yet, but I definetely see that problem in my app (the link is above, do not want to spam), where 2 Lists are updated via TCP socket by server.</p>
  
  <p>Here is my current test case (not really demoing the problem), maybe someone can improve it:</p>
  
  <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt;
  &lt;s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
                 xmlns:s="library://ns.adobe.com/flex/spark" 
                 xmlns:mx="library://ns.adobe.com/flex/mx"
                 applicationComplete="init()"&gt;
  
      &lt;fx:Script&gt;
          &lt;![CDATA[
              import flash.utils.setInterval;
              private function init():void {
                  setInterval(add, 1000);
              }
  
              private function add():void {
                  var pos:int = Math.floor(myAC.length * Math.random());
                  myAC.addItemAt({label: Math.random()}, pos);
              }
          ]]&gt;
      &lt;/fx:Script&gt;
  
      &lt;s:List id="myList" width="100%" height="100%"&gt;
          &lt;s:dataProvider&gt;
              &lt;s:ArrayCollection id="myAC" /&gt;
          &lt;/s:dataProvider&gt;
      &lt;/s:List&gt;
  
      &lt;s:controlBarContent&gt;
          &lt;s:Button id="myButton" label="Add number" click="add()" /&gt;
      &lt;/s:controlBarContent&gt;
  
  &lt;/s:Application&gt;
  </code></pre>