2011-05-15 101 views
0

我有一個VGroup的畫布,裏面填充了各種類型的對象,其中一些有mouseEvents,比如MOUSE_OVER。畫布滾動

我遇到的問題是讓畫布用鼠標滾輪正確滾動。只有鼠標懸停在滾動條上時,它纔會起作用。

我嘗試通過聽舞臺上的鼠標滾輪來僞造它,然後手動滾動畫布。但是當畫布滾動到物體在鼠標下方移動的位置時,事物就會變得粗糙。

有什麼建議嗎?

照顧, 李

更新:

確定。我發現,如果我在沒有添加的情況下使用畫布,則只有在鼠標懸停在其內部的對象上時纔會滾動。如果鼠標位於空白區域,則不滾動。

當我說'鼠標懸停在它內部的對象上'時,我的意思是文本字段和其他具有可視元素的對象。

好的。我找到了一個部分解決方案。如果我攔截VGroup上的mouseWHeel事件,滾動工作。但是,當我到達VGroup中的RichEditableText對象時,滾動停止。之前,它滾動得很好。

+1

您是使用Spark還是Halo組件?你能展示一些代碼來證明這個問題嗎? – JeffryHouser 2011-05-15 23:39:26

+0

我在Flex4中使用Spark。我不確定我可以發佈什麼樣的代碼。當您使用鼠標滾輪時,畫布不會滾動。它應該嗎?我看到某個地方可能不是。 – 2011-05-15 23:44:55

+1

請勿混合火花和光暈容器。使用Group或SkinableComponentContainer而不是Canvas。 – drkstr 2011-05-16 14:01:16

回答

1

在這裏找到了一個有趣的解決方案。 mouseWheel事件不會在畫布中觸發,除非它在InteractiveObject上(即文本字段等)。不過,當我測試確保鼠標實際位於畫布中時,我發現該事件在「白色」空間中觸發對象之間如果畫布有它的backgroundColor屬性集。因此,請設置backgroundColor,如果您不想要背景,請將backgroundAlpha設置爲0.