2011-08-29 6 views
0

페이스 북 응용 프로그램에서 친구들의 점수 통계를 보여주기 위해 세로 막 대형 차트를 만듭니다. 내 문제는 y 축의 이미지와 x 축의 이미지로 친구 이름을 표시하는 방법입니다. 태그의 'setSource'메소드에서 인수를 전달할 수 없습니다. 샘플 코드는 여기를 참조하십시오. 아무도 나에게 아이디어 나 견본을 알려주지 못했다면. 미리 감사드립니다.플렉스 막대 차트 축에서 이미지가있는 텍스트 표시

<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" 
     layout="vertical" width="100%" height="100%"> 
     <mx:Script><![CDATA[ 
    import mx.controls.TextArea; 
    import mx.controls.Text;`enter code here` 
    import mx.utils.ObjectUtil; 
    import mx.controls.Alert; 
     import mx.collections.ArrayCollection; 
     import mx.charts.series.items.PlotSeriesItem; 
     import mx.controls.Label; 
     import mx.controls.Image; 
     import mx.containers.HBox; 
     import mx.charts.series.items.BarSeriesItem; 
     import mx.charts.chartClasses.Series; 
     import mx.charts.ChartItem; 

     [Bindable] 
     public var frienddetails:ArrayCollection = new ArrayCollection([             
     {score:"5",Name:"charles",imgSource:"http://graph.facebook.com/10058050960/picture"}, 
     {score:"9",Name:"Martin",imgSource:"http://graph.facebook.com/100231645808/picture"}, 
     {score:"7",Name:"stewart",imgSource:"http://graph.facebook.com/10058050960/picture"}]); 

    ]]> 
    </mx:Script>  


    <mx:BarChart id="bar" height="100%" 
      paddingLeft="15" paddingRight="5" 
      showDataTips="true" width="847" 
      dataTipMode="multiple" > 
      <mx:verticalAxis> 
       <mx:CategoryAxis id="vAxis" categoryField="Name" dataProvider="{frienddetails}" /> 
      </mx:verticalAxis> 
      <mx:verticalAxisRenderers> 
       <mx:AxisRenderer placement="left" axis="{vAxis}" > 
        <mx:labelRenderer> 
         <mx:Component> 
          <mx:HBox width="100%" height="100%" minWidth="120" minHeight="20"> 
           <mx:Image id="axisImage" height="100%" width="25" source="{setSource()}"> 
            <mx:Script><![CDATA[ 
             import mx.collections.ArrayCollection; 
             import mx.utils.ObjectUtil; 
             import mx.controls.Alert; 
             import mx.charts.chartClasses.Series; 
             import mx.charts.ChartItem; 
             import mx.charts.series.items.BarSeriesItem;           
           public function setSource(element : ChartItem, series : Series) : String 
             { 
              var data : BarSeriesItem = BarSeriesItem(element); 
              var imgSrc : String = ""; 

              Alert.show("Check : "+data.item.imgSource); 
              imgSrc = data.item.imgSource; 

              return imgSrc; 
             } 
            ]]></mx:Script> 
           </mx:Image> 
           <mx:Label id="axisLabel" fontSize="12" width="100%" height="100%"> 
            <mx:Script><![CDATA[ 
             [Bindable] 
             override public function set data(value : Object) : void 
             { 
              if (value == null) 
              { 
               return; 
              } 

               axisLabel.text = value.text; 

             } 
            ]]> 
            </mx:Script> 
           </mx:Label> 
          </mx:HBox> 
         </mx:Component> 
        </mx:labelRenderer> 
       </mx:AxisRenderer> 
      </mx:verticalAxisRenderers> 
      <mx:series> 
       <mx:BarSeries id="bs2" dataProvider="{frienddetails}" 
         yField="Name" xField="score" displayName="Score" />   
     </mx:series> 
    </mx:BarChart> 
</mx:Application> 

답변

0

setSource [요소] 및 [시리즈] : 우리가 무엇을 살펴보기 전에 (요소 :하는 ChartItem, 시리즈 시리즈)

, 당신의 기능은 2 개 인자를 기대하고있다. 둘 다 호출에 지정되지 않습니다. 함수에서 [요소] 만 참조됩니다.

+0

의견을 보내 주셔서 감사합니다. 문제가 해결되었습니다. 축 레이블 크기를 어떻게 늘릴 수 있는지 알려주십시오. 높이와 minHeight를 사용하여 테스트했지만 유용하지는 않습니다. – raj