set LinkBar 的selectedindex

     最近由于项目需要用到了LinkBar组件,但在运用的过程中遇到了点小麻烦,即如果LinkBar的dataProvider如果是viewstack(官方提供),它的子项选中时可变灰(正常状态),但如果dataProvider变化时假设为ArrayCollection,LinkBar的子项被点击后不变灰色,呈现非选中状态,令人费解。查看了相关资料,终于找到解决办法。需要手动设置选中项,且设置selectedindex前必须将LinkBar的dataProvider重新指定。自定义一个LinkBar,override 父类的相应方法即可,代码如下:

 

<?xml version="1.0" encoding="utf-8"?>
<mx:LinkBar xmlns:mx="http://www.adobe.com/2006/mxml">
 <mx:Script>
  <![CDATA[
   
   override protected function clickHandler(event:MouseEvent):void {
    super.clickHandler(event);
    
    var lb:DisplayObject = event.target as DisplayObject;
    var num:int = getChildIndex(lb);
    if(num == -1){
     return;
    }
    var dp:* = this.dataProvider;
    this.dataProvider = null;
    this.dataProvider = dp;
    this.selectedIndex = num;
   }
   
  ]]>
 </mx:Script>
</mx:LinkBar>

 

效果如图:

set LinkBar 的selectedindex_第1张图片

以上是在flex3的开发环境中,心想flex4应该会解决bug,于是好奇的测试了一把,很遗憾adobe并没有解决这个bug,

没准儿他们并不认为这是个bug。

 

 

你可能感兴趣的:(function,Flex,测试,Adobe,encoding)