Кнопки навигации по временной шкале внутри movieclips

#actionscript-3 #button #navigation #timeline

#actionscript-3 #кнопка #навигация #временная шкала

Вопрос:

Во-первых, прошу прощения, если на этот вопрос был дан ответ в другом месте — поверьте мне, я искал! Я уверен, что для этого требуется невероятно простое решение.

У меня есть MC внутри, который состоит из нескольких изображений в разных кадрах и нескольких кнопок, которые должны вставать и останавливаться на каждом из кадров. Простая галерея.

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

Но кнопки не работают.

Вот код кнопки внутри MC:

 on1_btn.addEventListener(MouseEvent.CLICK, fl_ClickToGoToAndStopAtFrame_5); 

function fl_ClickToGoToAndStopAtFrame_5(event:MouseEvent):void 
{
    gotoAndStop("on1");

}
  

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

Любая помощь! Если вам нужна дополнительная информация / код, не стесняйтесь спрашивать.

Большое спасибо,

Джейми

Ответ №1:

Я так понимаю, что ваших кнопок нет на основной временной шкале. Есть действительно простой способ получить доступ к основной временной шкале из любого места, используя это:

 MovieClip(root).method();
  

Итак, для вас:

 MovieClip(root).gotoAndStop(5);
  

Кроме того, просто для удовольствия — это может быть более быстрым и аккуратным способом настройки нескольких кнопок с действием gotoAndStop вместо того, чтобы использовать много-много разных функций:

Дайте вашим кнопкам названия, которые заканчиваются цифрами.. например, goto1, goto6, goto9. Затем просто добавьте их в массив вверху этого:

 var buttons:Array = ["goto1","goto6","goto9"]; // <--- here

var i:String;
for each(i in buttons)
{
    this[i].addEventListener(MouseEvent.CLICK, goto);
}

function goto(e:MouseEvent):void
{
    var sb:SimpleButton = SimpleButton(e.target);
    var num:uint = uint(sb.name.substr(sb.name.length-1, 1));

    trace(num);
    gotoAndStop(num);
}