2011-05-03 52 views
0

在我的flex應用程序中,我需要限制鼠標移動到某個區域。換句話說,我想在應用程序中爲鼠標創建一個「No Entry Zone」。隱藏當鼠標進入該區域時光標不是我的解決方案。在flex應用程序中限制鼠標移動區域

<?xml version="1.0" encoding="utf-8"?> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" minWidth="955" minHeight="600"> 

    <mx:Script> 
     <![CDATA[ 
      protected function canvas2_mouseMoveHandler(event:MouseEvent):void 
      { 
       trace('mouse moved inside');//this trace should not be executed. 
      } 

     ]]> 
    </mx:Script> 

    <mx:Canvas x="250" y="180" backgroundColor="white" height="300" width="400" mouseMove="canvas2_mouseMoveHandler(event)"> 
     <mx:Text text="Mouse Entry not allowed"/> 
    </mx:Canvas> 
</mx:Application> 

回答

0

我們可以控制/設置鼠標的位置從的Flex/ActionScript中

,但我們可以做帆布鼠標的感測能夠將性能

即當我們在移動鼠標它不會觸發事件。性能

mouseChildren="false" 
mouseEnabled="false" 

希望幫助

+0

一些樣品我想給一個向用戶提供鼠標無法進入該區域的視覺反饋。也就是說,鼠標只能移動到該區域的邊界,並且如果用戶試圖將鼠標帶入內部,則鼠標移動應該受到限制。我們無法控制它嗎? – user700284 2011-05-03 12:03:46

+0

從AS3/Flex我的答案是否定的,但你可以使用包裝來控制像ASP.net的鼠標位置,在這種情況下,你需要調用ASP.net/JS方法從Flex時,鼠標在禁區內移動,但從來沒有嘗試過, – Imran 2011-05-03 12:13:27

+0

通過你的拖放評論,我發現你不想限制鼠標,但一個對象看Flash例子http://www.flashandmath.com/basic/dragdroptour/dd_tour1.html是你需要什麼? – Imran 2011-05-03 12:50:24

1

你不能編程位置(所以沒有固定)鼠標光標在Flex中(由作者:Alex Harui in this answer指出)。

雖然,你可以試試to this approach
通過跟蹤鼠標的x | Y你可以

  1. 繪製光標在其上一次啓用 位置輸入您 限制畫布(+隱藏)時,和
  2. 刪除繪製光標 mouseOut事件(+顯示光標)。

限制在拖/放你Canvas剛纔設置的dragEnter屬性(事件處理程序)就可以了:

dragEnter="event.stopImmediatePropagation();" 

你可以看到enabling and disabling drag/drop operations here

+0

隱藏鼠標指針是行不通的,因爲它是我想限制的遊標的移動。基本上,我想限制拖放到特定區域(http ://stackoverflow.com/q/5713140/700284)。所以,我想如果我能夠以某種方式限制鼠標光標的移動並將光標停在它所在的位置,我會實現它。所以我不可能按照我想要的方式做到這一點嗎? 順便說一句:你發佈的第二個鏈接似乎指向了錯誤的網址 – user700284 2011-05-03 12:17:50

+0

爲了限制在flex組件上拖放,你需要指定正確的處理程序。請參閱我的更新。 (抱歉關於錯誤的鏈接,我也更新了它)。 – rekaszeru 2011-05-03 12:32:00