2010-06-20 146 views
0

有沒有辦法做到這一點在Flex中說:鼠標座標行動

if mouseClick x<300&y<200 currentState=''; 

感謝,

回答

0

您可以將監聽器添加到舞臺捕捉到的所有點擊:

package 
{ 

import flash.display.Sprite; 
import flash.events.Event; 
import flash.events.MouseEvent; 

[SWF(width='500', height='300', backgroundColor='#ffffff', frameRate='30')] 
public class ClickTest extends Sprite 
{ 
    public function ClickTest() 
    { 
     addEventListener(Event.ADDED_TO_STAGE, addedToStage); 
    } 

    private function addedToStage(event:Event):void 
    { 
     stage.addEventListener(MouseEvent.CLICK, handleClick); 
    } 

    private function handleClick(event:MouseEvent):void 
    { 
     if((stage.mouseX < 300) && (stage.mouseY < 200) 
     { 
      trace("CLICKED WHERE I WANT"); 
     } 
    } 
} 

} 

這似乎當精靈被放置在界面的頂部甚至工作。

1

許多對象分派click事件;並在該點擊事件屬性中,您可以使用stageX和stageY屬性訪問x和y位置。

http://livedocs.adobe.com/flex/3/langref/flash/events/MouseEvent.html

不過,我不認爲這是可能偵聽在特定位置的點擊事件沒有他們在那個地方是一個UI元素。

我還質疑,爲這種狀態變化硬編碼x和y位置是一個好主意;因爲不同的機器和不同的屏幕尺寸和分辨率可能會以不同的方式調整您的內容。