鼠标坐标动作

时间:2010-06-20 15:28:45

标签: flex actionscript-3 if-statement coordinates mouseevent

有没有办法在Flex中说:

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

谢谢,

2 个答案:

答案 0 :(得分:1)

许多对象发送点击事件;在该click事件属性中,您可以使用stageX和stageY属性访问x和y位置。

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

但是,我不认为可以在特定位置监听点击事件,而不会在该位置成为UI元素。

我还质疑是否对这种状态变化的x和y位置进行硬编码是一个好主意;因为不同的机器和不同的屏幕尺寸和分辨率可能会不同地调整您的内

答案 1 :(得分: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");
        }
    }
}

}

即使将精灵放在接口顶部,这似乎也能正常工作。