PDA

Просмотр полной версии : Свойство hitArea объекта MovieClip


Furinax
14.12.2009, 11:59
Пытаюсь сделать так, чтобы объект MovieClip реагировал на мышку аналогично объектам SimpleButton, т.е. на мышку мог реагировать не весь мувиклип, а только его часть. Посмотрев в хелп (http://help.adobe.com/ru_RU/AS3LCR/Flash_10.0/flash/display/Sprite.html#hitArea), решил для этого использовать свойство hitArea как в примере. Но в результате получилось, что мувиклип сам вообще перестал реагировать на мышь.
Вот код (аналогичен тому что в примере), помогите пожалуйсто разобраться.
\\ Где-то теле метода-конструктора класса...
var square:Sprite = new Sprite();
square.graphics.beginFill(0x000000);
square.graphics.lineTo(77, 38.5);
square.graphics.lineTo(154, 0);
square.graphics.lineTo(77, -38.5);
square.graphics.lineTo(0, 0);
square.graphics.endFill();
square.mouseEnabled = false;
var fieldPiece1:MovieClip = new FieldPiece();
placeObject(fieldPiece1, 0, 0);
fieldPiece1.hitArea = square;
addChild(fieldPiece1)

Wolsh
14.12.2009, 14:03
А разве hitArea не надо помещать в Список Отображения?)))

Furinax
14.12.2009, 14:41
а мне не нужно, чтобы его было видно, плюс к тому же hitArea надо задать не одному клипу, а 36. Моя идея заключается в том, чтобы пачке клипов задать в качестве hitArea объект square. Хочется получить сделать так, чтобы на мышку могли реагировать мувиклипы не целиком, а только их часть. Но похоже, что не работает...

Wolsh
14.12.2009, 14:48
А Вы вообще как представляли реакцию на мышь у объекта, которого нет на сцене???
Чтобы было не видно, заливку сделайте с альфой 0.

Добавлено через 7 минут
Кроме того, такие прозрачные кнопки можно было разместить внутри клипов и подписать на мышь их, а не клипы.

Jewelz
14.12.2009, 14:57
или square.visible = false;

тогда вроде даже не надо будет прописывать square.mouseEnabled = false;

но addChild(square); обязательно

Furinax
14.12.2009, 14:58
я просто думал, что это работает аналогично задаию границ для драга, т.е. можно и невидимым делать. Теперь вродь получилось. Спс.

Wolsh
14.12.2009, 15:00
Границы для драга не задаются с помощью DisplayObject, коим является в частности спрайт. Там как раз абстрактный объект класса Rectangle))