灵活的家伙我有一点问题,需要一些专业人士的建议。我在我的flex移动项目中有一个Spark List组件,当用户点击列表项时我添加了一个Callout组件 - 它会生成一个新的callout组件并打开它。但在我的情况下(我在iPad上进行了测试)它可以在用户点击列表时起作用,但是当用户双击(列表双倍)列表时它会崩溃 - 这是因为当用户创建和添加事件监听器到标注组件等时双击列表它会尝试创建一个标注,同时在触发MOUSE_DOWN_OUTSIDE时关闭它(由于更好的CPU性能,它不是模拟器中的情况)。那么我怎么能把它构造成没有错误 - 或者callout的任何更好的优势来显示列表项的细节。这是我的代码:
<fx:Script>
<![CDATA[
public var clInfo:Callout;
protected function lst_tetkikler_clickHandler(event:MouseEvent):void
{
if(lst_tetkikler.selectedItem != null){
clInfo = new Callout();
clInfo.width = 400;
clInfo.setStyle("contentBackgroundColor",0xf8eabd);
lbl_adet.text = lst_tetkikler.selectedItem['adet'];
lbl_puan.text = lst_tetkikler.selectedItem['puan'];
clInfo.addElement(vg_info);
clInfo.verticalPosition = "after";
clInfo.open(lst_tetkikler.dataGroup.getElementAt(lst_tetkikler.selectedIndex) as DisplayObjectContainer,true);
clInfo.addEventListener(FlexMouseEvent.MOUSE_DOWN_OUTSIDE, closeComponent);
}
}
protected function closeComponent(event:FlexMouseEvent):void
{
if(clInfo){
clInfo.removeEventListener(FlexMouseEvent.MOUSE_DOWN_OUTSIDE, closeComponent);
clInfo.close();
clInfo = null;
}
}
]]>
</fx:Script>
<s:List id="lst_tetkikler" width="100%" height="50%"
dataProvider="{listTetkik}" contentBackgroundAlpha="0"
visible="{!(listTetkik.length==0)}"
labelField="tetAdi" color="#314F83"
click="lst_tetkikler_clickHandler(event)"
>
</s:List>
有什么建议吗?
答案 0 :(得分:0)
我已经解决了在 CalloutButton 组件下添加所有标注内容的问题 - 似乎Adobe团队仅在标注按钮案例中考虑了这种情况 - 动态创建标注,如上面的方案会崩溃强>