我已经使用新的Apache Flex SDK 安装程序为 Flash Builder 4.7 安装了 Flex 4.10.0 SDK(在 MacOS 和 Windows 上都试过),并且喜欢它运行得多么顺利:
我也很高兴有人仍在开发 Flex SDK(谢谢!)——因为很长一段时间以来它看起来都被遗弃了。
我的3个问题:
有没有人列出(据说超过 15 个?)新的 Spark 组件?到目前为止,我只注意到一个:
mx.controls.Alert
-> spark.components.Alert。(而且我注意到spark.utils.MultiDPIBitmapSource
支持source480dpi
很棒)。有谁知道,如果有一个
spark.components.List
不记得它的滚动位置的修复?因为目前在我的 Flex 游戏中,服务器更新了 2 个列表,所以我必须使用自定义皮肤和数据组,如这个不错的博客中所述。目前要将 a 滚动
spark.components.List
到底部,我必须使用以下 hack并想知道是否也解决了这个问题?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++ < 10) { list.validateNow(); delta = list.layout.getVerticalScrollPositionDelta(NavigationUnit.END); list.layout.verticalScrollPosition += delta; if (delta == 0) break; } }
更新:
对于问题 #3,我创建了一个带有测试用例和屏幕截图的JIRA #33660 。已经有类似的错误报告,但它们已被 Adobe 关闭。
更新 2:
对于问题 #2,我还不能创建一个简单的测试用例,但我在我的应用程序中明确地看到了这个问题(链接在上面,不想垃圾邮件),其中 2 个列表通过 TCP 套接字更新服务器。
这是我当前的测试用例(不是真正演示问题),也许有人可以改进它:
<?xml version="1.0" encoding="utf-8"?>
<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()">
<fx:Script>
<![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);
}
]]>
</fx:Script>
<s:List id="myList" width="100%" height="100%">
<s:dataProvider>
<s:ArrayCollection id="myAC" />
</s:dataProvider>
</s:List>
<s:controlBarContent>
<s:Button id="myButton" label="Add number" click="add()" />
</s:controlBarContent>
</s:Application>