Flash: создание интерактивного изображения - PullRequest
0 голосов
/ 18 февраля 2011

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

Я импортировал изображение из иллюстратора для прошивки на один кадр и сделал каждую стрелку кнопкой, а уменьшенное изображение - увеличенной версией, но кажется, что изображения находятся на отдельных слоях? когда я подхожу к одной из стрелок, она находится под одной стрелой, но над другой.

Как бы мне, чтобы стрелка над изображением всегда была сверху всех остальных изображений в фильме?

Может быть, код, который, при наведении, вывел символ на передний план сцены?

Ответы [ 2 ]

0 голосов
/ 18 февраля 2011

Вы можете прикрепить функцию прослушивателя событий для реагирования на MouseEvent.MOUSE_OVER, которая выведет кнопку на передний план.

Создайте MyButton.as (код ниже) для хранения класса, расширяющего SimpleButton, и добавьте туда функцию слушателя. Затем установите MyButton в качестве базового класса для символа стрелки на панели свойств.

package {

    import flash.display.SimpleButton;
    import flash.events.MouseEvent;

    public class MyButton extends SimpleButton {
        private function onMouseOver ( ev:MouseEvent ) : void {
            parent.setChildIndex (this, parent.numChildren -1);
        }

        public function MyButton () {
            addEventListener (MouseEvent.MOUSE_OVER, onMouseOver);
        }
    }
}
0 голосов
/ 18 февраля 2011

Я не уверен на 100% в структуре вашего флэш-приложения / фильма, но я думаю, что вы бы сделали что-то вроде следующего:

import flash.display.Sprite;
import flash.events.MouseEvent;

arrow.addEventListener(MouseEvent.MOUSE_OVER, onArrowMouseOver);
arrow.addEventListener(MouseEvent.MOUSE_OUT, onArrowMouseOut);

function onArrowMouseOver(e:MouseEvent):void
{
    var arrow:Sprite = Sprite(e.target);
    setChildIndex(arrow, this.numChildren-1);
    arrow.scaleX = arrow.scaleY = 2;
}

function onArrowMouseOut(e:MouseEvent):void
{
    var arrow:Sprite = Sprite(e.target);
    arrow.scaleX = arrow.scaleY = 1;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...