Гиперссылка на кнопки в Animate ActionScript 3.0 - PullRequest
0 голосов
/ 28 мая 2018

Я пытаюсь сделать три кнопки в Adobe Animate, используя ActionScript.Вот код, который я использую для кнопки 1:

button. addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
function mouseDownHandler(event:MouseEvent):void {
     navigateToURL(new
     URLRequest("https://website.com/"));
}



button2. addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
function mouseDownHandler2(event:MouseEvent):void {
     navigateToURL(new
     URLRequest("https://anotherwebsite.com/"));
}


button3. addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
function mouseDownHandler3(event:MouseEvent):void {
     navigateToURL(new
     URLRequest("https://yetanotherwebsite.com/"));
}

(URL-адреса составлены и предназначены только для демонстрации.) Код для кнопок 2 и 3, как вы можете видеть, это в точностито же самое, но на разных слоях.Я также изменяю имя экземпляра в начале, имя функции и URL для каждой кнопки.Но когда я нажимаю CTRL + Enter, все кнопки ведут на одну и ту же веб-страницу (в данном случае «website.com»), которую я помещаю первой.Это должно привести к различным URL-адресам, которые я вставил, но все они просто идут на один и тот же.Почему это происходит и как мне это исправить?

1 Ответ

0 голосов
/ 04 июня 2018

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

button. addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
button2. addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
button3. addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);

Что вы хотите сделать, это:

button. addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
button2. addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler2);
button3. addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler3);

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

function mouseDownHandler(event:Event):void {
    var url:String;
    //event.currentTarget is a reference to the object that you attached the event listener to
    switch(event.currentTarget){
        case button:
            url = "https://website.com/";
            break;

        case button2:
            url = "https://anotherwebsite.com/";
            break;

        default:
            url = "https://yetanotherwebsite.com/";
    }

    navigateToURL(new URLRequest(url));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...