Мышь координирует действие - PullRequest
0 голосов
/ 20 июня 2010

Есть ли способ сделать это во Flex, чтобы сказать:

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

Спасибо,

Ответы [ 2 ]

1 голос
/ 20 июня 2010

Многие объекты отправляют событие клика; и в свойствах этого события щелчка вы можете получить доступ к позициям x и y, используя свойства stageX и stageY.

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

Однако я не думаю, что можно прослушать событие щелчка в определенном месте, не будучи элементом пользовательского интерфейса в этом месте.

Я также задаюсь вопросом, является ли жесткое кодирование положения x и y для такого изменения состояния хорошей идеей; так как разные машины и разные размеры экрана и разрешения могут по-разному оценивать ваш контент.

0 голосов
/ 22 июня 2010

Вы можете добавить слушателя на сцену для захвата всех кликов:

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");
        }
    }
}

}

Это похоже на работу, даже если спрайты размещены поверх интерфейса.

...