2010-06-20 149 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位置是一个好主意;因为不同的机器和不同的屏幕尺寸和分辨率可能会以不同的方式调整您的内容。