идентификаторы currentFrame [AS3] - PullRequest
0 голосов
/ 19 февраля 2012

Я совершенно новичок во Flash и AS3, и я подумал, что это будет простой вопрос, но я не смог найти ответ в Интернете или в документации. Я пытаюсь использовать addEventListener (Event.ENTER_FRAME) и (.currentFrame), чтобы отключить кнопку для части последовательности анимации. Когда последовательность анимации исчезает, курсор на кнопке виден, и люди могут выбрать его до завершения последовательности. Я хочу, чтобы эта кнопка была отключена для первых 213 кадров основной временной шкалы, когда кнопка становится видимой.

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

Skip_btn.addEventListener(MouseEvent.CLICK, SkipToGoToScene);

function SkipToGoToScene(event:MouseEvent):void
{
MovieClip(this.root).gotoAndPlay(1, "Opening");
}

//Skip_btn functions

Skip_btn.addEventListener(Event.ENTER_FRAME, skipDisable);

function skipDisable(event:Event) {
if (this.currentFrame < 213)
{   Skip_btn.mouseEnabled = false;
} else {
Skip_btn.mouseEnabled = true;
}

if (this.currentFrame > 213) {
Skip_btn.removeEventListener(Event.ENTER_FRAME, skipDisable);
}
}

Проблема в том, что раньше я мог просто использовать this.currentFrame, поскольку кнопка находилась на той же временной шкале, которой она управляла, тогда как теперь она встроена в мувиклип, который находится на основной временной шкале. Что я могу поменять местами на «это», чтобы я мог ссылаться на этот основной график? Кроме того, кто-то может сообщить мне, что другие "идентификаторы" для ".currentFrame", так как я не слишком уверен, как это работает. В примерах документации запрашиваются мувиклипы, такие как «MyMovie_mc.currentFrame», но что, если вы просто хотите сослаться на основную временную шкалу?

1 Ответ

0 голосов
/ 19 февраля 2012

Если кнопка находится на основной временной шкале, вы можете просто использовать

this.root.getChildByName("Skip_btn").mouseEnabled = true;

А если вы начнете воспроизводить анимацию на основной временной шкале, используйте

MovieClip(this.root).currentFrame
...