Как сделать графический символ перетаскиваемым во FLASH? - PullRequest
0 голосов
/ 24 декабря 2009

Не могли бы вы рассказать, как код ActionScript будет выглядеть для такой работы?

Ответы [ 4 ]

0 голосов
/ 07 марта 2011

Я знаю, что это старый вопрос, но есть важный аспект, который не был рассмотрен ...

Вы ссылаетесь на библиотечный символ, который объявлен как «Графика» (в отличие от мувиклипа или кнопки)?

Если вы имеете в виду понятие «Библиотечный символ», то есть «Графика», вы не можете. График можно представить как прославленную «группу», главное отличие в том, что Графика живет в Библиотеке, а группа - нет. Как и группа, Графика позволяет собирать различные элементы вместе в одном «контейнере» и манипулировать ими в .fla, но на самом деле он не существует в качестве программной конструкции в опубликованном swf ... поэтому вы не можете добавить сценарий или команды для графического объекта, поскольку в отношении флэш-плеера графического изображения нет.

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

for(var i:int = 0 ; ilen:int = this.numChildren ; i < ilen ; i++){
    trace(this.getChildAt(i));
}

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

Так что вы можете сделать, чтобы решить эту проблему?

Если вам абсолютно необходимо, чтобы этот символ был графикой в ​​библиотеке, и вам абсолютно необходимо иметь возможность перетаскивать его целиком (или выполнять любые другие действия с ним), то вам нужно поместить его в MovieClip контейнер, а затем перетащите этот MovieClip.

0 голосов
/ 24 декабря 2009

Вы имеете в виду объект класса Shape или объект класса Graphics? Класс Shape является производным от DisplayObject, поэтому для него нет интерактивной поддержки, и нельзя создать экземпляр объекта класса Graphics. Для создания чего-то перетаскиваемого необходимо поместить графику в какой-либо объект Sprite.

0 голосов
/ 31 декабря 2009

Вот один из способов:

Создайте мувиклип под названием «Круг». Щелкните правой кнопкой мыши на символе в библиотеке, выберите «Свойства»> установите флажок «Связывание», затем «Экспорт для ActionScript». Назовите класс "Круг". Вы можете использовать flash.display.MovieClip в качестве базового класса.

Затем в той же папке, что и ваш файл .fla, создайте текстовый файл с именем «Circle.as» (не забудьте использовать заглавную букву C, как вы называете MovieClip) и введите следующее:

package {
    import flash.display.MovieClip;
    import flash.events.MouseEvent;

    public class Circle extends MovieClip {
        public function Circle () {
            this.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
            this.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler);

            this.buttonMode = true;
            this.mouseChildren = false;
        }

        private function mouseDownHandler(e:MouseEvent):void {
            startDrag();
        }

        private function mouseUpHandler(e:MouseEvent):void {
            stopDrag();
        }
    }
}
0 голосов
/ 24 декабря 2009

Вы используете StartDrag () и StopDrag ()

http://edutechwiki.unige.ch/en/Flash_drag_and_drop_tutorial

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...