Action Script и MovieClip - как объединить несколько MovieClip? - PullRequest
0 голосов
/ 23 мая 2011

Я только начал читать книгу «Изучение ActionScript 3.0».Итак, в 3-й главе автор описывает EventLinsteners.

Подраздел «Распространение событий».С самого начала автор создает папки на сцене с именами экземпляров Folder0 и Folder1 и объясняет событие Mouse_Over.Чем сказано, что если у вас на сцене 100 таких папок, вам придется написать EventListener для каждого экземпляра папки.Таким образом, они вводят какой-то «странный для меня» тип экземпляра с именем folder_group, и это похоже на 1 MovieClip, но с несколькими MovieClip внутри (я думаю, MovieClip - правильная ссылка).

Итак, вкратце, в следующей части этой главы есть подзаголовок Frame Events, где у автора Unicycle.Этот одноколесный велосипед тоже является одним MovieClip.Это имеет место в случаях, когда вы дважды щелкните по нему.Экземпляр тела и колеса.

Итак, как, черт возьми, мне это делать.Как создать такой мувиклип, в котором есть несколько разных частей.Когда вы дважды щелкаете по нему, вы переходите из Scene1 -> «Some Name».

Пожалуйста, кто-нибудь, объясните, как это сделать ... Я пытался гуглить, но пока не понял.

и еще кое-что.В чем разница между отдельным файлом ActionScript и режимом ActionScript FLA (я имею в виду F9)

Заранее спасибо

1 Ответ

1 голос
/ 23 мая 2011

относительно распространения событий вы можете посмотреть по этой ссылке , пример swf показывает пузырение / распространение и остановку распространения

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

Вы можете попробовать этот простой тест. Создайте мувиклип с именем «mc» и поместите туда другие видеоклипы, используя этот код, каждый раз, когда вы нажимаете на что-либо внутри этого mc, происходит событие. если вы назовете эти мувиклипы, вы увидите всплывающие имена, в противном случае вы должны увидеть имена, похожие на этот «экземпляр #»

mc.addEventListener(MouseEvent.CLICK,onHit);

function onHit(e:MouseEvent):void{
    trace(e.target.name);
}

наличие кода в файле .as значительно упрощает кодирование. Например, я делаю 99,7% кодирования во внешнем редакторе и использую только flash для создания своих графических ресурсов. Вы можете использовать так называемый documentClass, который расширяет MovieClip по умолчанию, который действует как сценарий, большинство примеров в справке Adobe используют их. Для быстрых тестов я просто использую панель кода (F9). Большая разница в том, что кодирование таким образом (с использованием файлов .as) намного проще и быстрее, особенно с такими средами разработки, как FlashDevelop, FlashBuilder, FDT и т. Д.


для предоставленного вами fla, вы можете использовать это для класса документов

package {

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

    public class FrameEvents extends MovieClip {

        public function FrameEvents() {
            cycle.addEventListener(MouseEvent.CLICK,onHit);
        }

        public function onHit(e:MouseEvent):void{
            trace(e.target.name);
        }
    }
}

вы должны увидеть body, прослеживаемый при нажатии на корпус, и wheel при нажатии на колесо

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