AS3: ударить любой объект - PullRequest
0 голосов
/ 06 апреля 2011

Я работаю над приложением, в котором изображение служит курсором. Теперь я хотел бы знать в любое время, над каким объектом находится курсор. Вроде как HitTestObject (*), где я могу увидеть, какой объект представляет *. У кого-нибудь есть идеи, как мне это сделать? (и использование мыши не вариант)

Ответы [ 2 ]

1 голос
/ 06 апреля 2011

Я уже решил проблему :), так как курсор был в другом спрайте, чем другие, мне пришлось сделать это таким образом, потому что я не мог передать объекты для наведения в массив.

        //First we will create a point that contains the x and y of this cursor.
        var _position:Point = new Point(x + (width/2), y + (height/2));

        //Secondly, we will get an array of elements that are under this point.
        var _objects:Array = parentApplication.getObjectsUnderPoint(_position);

        //If the length of the objectsList is longer than or equal to 2, we may assume that
        //there is an object
        if(_objects.length >= 2)
        {
            //Set the currentObject variable to the object the cursor is hovering over.
            //The minus two is simple. The cursor is always the last object under that point,
            //so we need the object before that.
            _currentObject = _objects[_objects.length - 2];

            //dispatch the event in the object.
            dispatchCursorEventToObject(EyeEvent.CURSOROVER);
        }
1 голос
/ 06 апреля 2011

Поместите элементы, которые вы хотите отслеживать для «зависания», в отдельный массив, затем добавьте слушатель onEnterFrame к объекту, присоединенному к вашей мыши, который выполняет итерацию по массиву и выполняет hitTests с каждым из объектов.*

и это происходит в обработчике onEnterFrame для вашего объекта, прикрепленного к мыши:

for(var item:MovieClip in hitTestClips)
{
  if(item.hitTest(this.x, this.y, true))
  {
    trace('now hovering above ' + item);
  }
}
...