#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);
}