2011-04-05 73 views
0

嗨 我有一個擴展CircleItemRenderer的自定義類BubbleRenderer。我使用這個類作爲氣泡圖中的項目渲染器。在氣泡圖中,我收聽itemRollOver事件。氣泡圖的maxRadius和minRadius是相同的。但我有許多不同大小的泡泡,因爲我有自己的方式將它們繪製到屏幕上。現在棘手的部分是,無論實際大小如何,泡泡都會翻轉過來。 E.g泡沫半徑爲100.泡泡圖的maxRadius和minRadius等於20.現在,如果將鼠標光標放置在泡泡中心20px處,itemRollOver事件將被分派。我想要的是,如果我將鼠標光標放置在我的氣泡中心100px(即氣泡的實際半徑),那麼將調度該事件。我試圖覆蓋寬度和measuredWidth屬性沒有運氣。我在Flex框架中進行了一些挖掘,以找到基於itemRollOver事件的屬性。我發現唯一的事情是ChartBase.processRollEvents基於hitSet參數創建事件。 hitSet參數由ChartBase.findDataPoints產生,但我不明白這種方法是如何工作的。解決這個問題的一種方法是用鼠標移動來檢查氣泡位置,但我希望有一個簡單的解決方案。Flex chart itemRenderer大小

+0

您是否對此有任何好運或有關如何擴展circleitem渲染器的信息?我正在嘗試做類似的事情(圖表的圓圈大小取決於數據),但我真的開始從何處開始...... – Damon 2011-04-12 03:33:19

+0

我不依賴於itemRollOver事件。相反,我會聽MOUSE_MOVE事件並進行自己的檢查。 – KOsmos 2012-08-17 10:47:23

回答

0

鼠標翻轉檢測發生在BubbleSeries.findDataPoints()

正如你可以看到它在很大程度上依賴於minRadiusmaxRadius所以它似乎並沒有被顯示泡沫比maxRadius更大的一個好主意。

也許你可以同步z計算與你自定義的氣泡渲染邏輯?