Понимание ActionScript > Разбор простого скрипта
Разбор простого скриптаВ этом простом клипе, при переносе мухи в ловушку, муха чернеет и падает вниз ловушки. Клип имеет продолжительность в один кадр и содержит два объекта: мувик с мухой и мувик с ловушкой. Каждый из мувиков также содержит по одному кадру.
Муха и ловушка находятся на сцене в первом кадре
В этом клипе всего один скрипт. Он назначен клипу с именем 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, то покажется, что ловушка мигнула. Эти действия произойдут после того, как муха будет поймана и упадет.