2010-08-05 35 views
4

我試圖捕獲鼠標事件,只要鼠標在spark.primitive.path(下面的'L'形狀)頂部完成某件事情。Flex 4:使用spark.primitive.path對象捕獲鼠標事件

我已閱讀的所有內容都指出,我需要將路徑放入Group對象中,並將鼠標處理程序附加到該對象上。因此,代碼會是這個樣子..

<s:Group left="10" right="10" top="10" bottom="10" mouseOver="..."> 
    <s:Path data="M 100 300 L 200 50 L 275 50 L 250 150 L 300 150 L 300 300 Z">      
      <s:stroke> 
       <s:SolidColorStroke color="0x888888"/> 
      </s:stroke> 
     </s:Path> 
    </s:Group> 

...併產生像這樣的屏幕(請原諒ASCII藝術)

_____________________________ 
|       | 
|    _______  | 
|   / /  | 
|   / /  | 
|  / /  | 
|  / /_____  | 
|  /   |  | 
|  /   |  | 
|  /______________|  | 
|       | 
----------------------------- 

但這幾乎工作。問題在於鼠標事件是基於組對象的維度而不是路徑觸發的。因此,如果您將鼠標懸停在仍然觸發鼠標事件的路徑的左側,因爲該組是一個從0,0開始到「L」右下角結束的框。

有關我如何解決此問題(或備用解決方案)的任何想法,都非常感謝。

回答

4

如果您使用SkinnableContainer而不是Group,則會得到您正在查找的行爲。

+0

那很棒 – Jason 2010-08-10 12:14:09