2017-02-07 16 views
0

Flex 4의 내 차트에 데이터 팁을 사용하고 싶습니다. 사용법은 알고 있지만 표준 DataTip은 텍스트 만 표시합니다. 나는 텍스트 + 버튼을 보여주고 싶다. 이것에 대해 어떻게 생각하나요? Flex의 사용자 정의 DataTip

나는 사용자 정의 힌트 클래스에서 힌트 확장에 대한 생각이 수/올바른 생각은이

public class MyDataTip extends DataTip { 
    // Override some methods to add the button here? 
} 

같은 곳이 버튼을 추가? 아니면 다르게해야합니까? 이 코드 예제가 있습니까?

+0

왜 힌트의 버튼을할까요? 커서 위치를 멀리 이동할 때 DataTip이 사라 지므로 버튼을 클릭 할 수 없습니다. – gbdcool

+0

나는 그것 위로 움직일 수 있고, 그 다음 그것은 머무른다. 상세보기로 전환하려면이 버튼을 사용해야합니다. – user975561

답변

2

DataTipRenderer를 사용하여이 작업을 수행 할 수 있습니다. 다음은 그 예입니다.

<?xml version="1.0"?> 
<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009" 
     xmlns:s="library://ns.adobe.com/flex/spark" 
     implements="mx.core.IFlexDisplayObject, mx.core.IDataRenderer" 
     width="120"> 
<fx:Metadata> 
[Event(name="DataSelect", type="flash.events.Event")] 
</fx:Metadata> 
<fx:Script> 
<![CDATA[ 
import flashx.textLayout.conversion.TextConverter; 
import flashx.textLayout.elements.TextFlow; 

import mx.charts.HitData; 
import mx.charts.series.items.ColumnSeriesItem; 

private var _data:HitData; 

[Bindable] 
private var _xValue:String; 

[Bindable] 
private var _yValue:String; 

[Bindable] 
private var _displayText:TextFlow; 

public function get data():Object 
{ 
    // TODO Auto Generated method stub 
    return null; 
} 

public function set data(value:Object):void 
{ 
    // HitData data from chart 
    _data = value as HitData; 

    // The display text used in datatip which comes in HTML format 
    _displayText = TextConverter.importToFlow(_data.displayText, TextConverter.TEXT_FIELD_HTML_FORMAT); 

    // HitData contains a reference to the ChartItem 
    var item:ColumnSeriesItem = _data.chartItem as ColumnSeriesItem; 

    // ChartItem xValue and yValue 
    _xValue = String(item.xValue); 
    _yValue = String(item.yValue); 
} 

]]> 
</fx:Script> 

<fx:Declarations> 

</fx:Declarations> 

    <s:Rect right="0" left="0" bottom="0" top="0"> 
     <s:filters> 
     <s:DropShadowFilter blurX="20" blurY="20" alpha="0.22" distance="5" angle="90" knockout="false" /> 
     </s:filters> 
     <s:fill> 
     <s:SolidColor color="0xFFFFEE"/> 
     </s:fill> 
     <s:stroke> 
      <s:SolidColorStroke color="0x1a1a19" weight="1" alpha=".2" /> 
     </s:stroke> 
    </s:Rect> 

    <s:VGroup width="100%" height="100%" paddingTop="10" paddingRight="10" paddingBottom="10" paddingLeft="10"> 

     <s:RichEditableText textFlow="{_displayText}" width="100%" textAlign="center" selectable="false" editable="false"/> 

     <s:Button label="Click me !"/> 


    </s:VGroup> 
</s:Group> 

그리고 당신의 차트 MXML 태그로

는 다음을 추가

<mx:ColumnChart id="myChart" showDataTips="true" dataTipRenderer="com.CustomDataTipRenderer">