Разбор простого скрипта
В этом простом клипе, при переносе мухи в ловушку, муха чернеет и падает вниз ловушки. Клип имеет продолжительность в один кадр и содержит два объекта: мувик с мухой и мувик с ловушкой. Каждый из мувиков также содержит по одному кадру.
Муха и ловушка находятся на сцене в первом кадре
В этом клипе всего один скрипт. Он назначен клипу с именем bug, см. в Object Actions panel:
Object Actions panel со скриптом, назначенным клипу bug
Так как оба объекта являются мувиками, можно назначить каждому из них уникальное имя в Instance panel и управлять ими при помощи ActionScript. Имя мувика с мухой будет bug, с ловушкой - zapper. В скрипте, к мувику с мухой обращаются как к this, так как скрипт назначен непосредственно этому клипу, а зарезервированное слово this адресует к объекту, в котором вызывается скрипт.
В скрипте находятся два обработчика onClipEvent с двумя разными событиями: load и enterFrame. Команды, в блоке onClipEvent(load) выполняются только один раз при загрузке клипа. Команды в блоке onClipEvent(enterFrame) выполняются каждый раз, когда player входит в этот кадр. Так как у нас клип состоит только из одного кадра, то эти команды повторяются постоянно. Следующие команды происходят при наступлении этих событий.
onClipEvent(load). Команда startDrag делает клип с мухой перетаскиваемым. Создается экземпляр объекта Color при помощи оператора new и конструктора Color. Этому экземпляру назначается имя zap:
onClipEvent (load) { startDrag (this, true); zap = new Color(this); }
onClipEvent(enterFrame). Условный оператор if использует команду hitTest для проверки соприкосновения клипа с мухой (this) и клипа с ловушкой (_root.zapper). Возможны два результата проверки, true или false:
onClipEvent (enterFrame) { if (this.hitTest(_root.zapper)) { zap.setRGB(0); setProperty (_target, _y, _y+50); setProperty (_root.zapper, _alpha, 50); stopDrag (); } else { setProperty (_root.zapper, _alpha, 100); } }
Если команда hitTest возвращает true, объект zap, созданный в блоке load, используется для перекрашивания мухи в черный цвет. К свойству мухи (_y) прибавляется 50, таким образом кажется, что муха упала (переместилась на 50 пикселов вниз). Прозрачность ловушки (_alpha) становиться равной 50, кажется что ловушка мигнула. Команда stopDrag отключает перетаскивание клипа с мухой.
Если команда hitTest возвращает false, выполняются команды в блоке else. При этом значение _alpha ловушки становится равным начальному значению (100), а если оно до этого было равно 50, то покажется, что ловушка мигнула. Эти действия произойдут после того, как муха будет поймана и упадет.