可能在 Canvas 而不是 Chart 对象上有 Flex 数据提示?
Posted
技术标签:
【中文标题】可能在 Canvas 而不是 Chart 对象上有 Flex 数据提示?【英文标题】:Possible to have Flex dataTips on Canvas rather than Chart objects? 【发布时间】:2011-01-06 00:39:47 【问题描述】:弹性图表,如AreaChart
,具有出色的内置支持,可在用户将鼠标悬停在图表数据中提供的点上时显示数据“工具提示”。您可以将鼠标悬停在任何条形图示例on this page 上进行演示。
我有一个图表情况,我可以选择在CartesianDataCanvas
es 上绘制一些点作为参考点,通过它的<mx:annotationElements>
和<mx:backgroundElements>
标签提供给我的AreaChart
。我希望拥有与AreaChart
相同的悬停数据提示功能,但适用于这些点。有谁知道如何做到这一点,或者是否有可能?
我意识到我只是在画布上绘图,并且没有实际的 dataProvider 支持这些点,但是如果有办法为 CartesianDataCanvas
提供一组数据值或类似的东西,那就太好了!
【问题讨论】:
【参考方案1】:看过您的另一篇帖子后,我假设您正在使用cdc.graphics
绘制点。在这种情况下,向它们添加悬停文本并不容易。创建一个扩展UIComponent
的类,覆盖updateDisplayList
方法并在其中进行绘图。现在,您可以使用 dot.toolTip
属性轻松地将鼠标悬停在文本上。
//Dot.as
package
public class Dot
override protected function updateDisplayList(unscaledWidth:Number,
unscaledHeight:Number):void
this.graphics.lineStyle(1);
this.graphics.drawCircle(0, 0, 5);
//... later:
var dot:Dot = new Dot();
dot.x = xValue;
dot.y = yValue;
dot.toolTip = "Hover Text";
cdc.addChild(dot);
【讨论】:
Amarghosh,我只想对您在跟进我的两个问题时的努力表示感谢。非常感谢您的帮助! 我终于有机会尝试一下(工作一直很忙),这几乎是完美的。然而,事实证明添加到数据画布(如CartesianDataCanvas
)更喜欢canvas.addDataChild(child, [left, top, right, bottom, hCenter, vCenter])
。您介意编辑您的帖子以将cdc.addChild
更改为cdc.addDataChild
吗?谢谢,阿马戈什!
哦!在覆盖此方法时,将super.updateDisplayList(unscaledWidth,unscaledHeight);
作为第一行调用也是一个好主意(有人告诉我)。而public class Dot
需要extends UIComponent
。以上是关于可能在 Canvas 而不是 Chart 对象上有 Flex 数据提示?的主要内容,如果未能解决你的问题,请参考以下文章
销毁 chart.js 条形图以重绘同一 <canvas> 中的其他图表
如何让基于html5 canvas的图表插件chart.js中的柱状图形横向显示