Кнопки связывания не работают в ActionScript - Flash CS4, AS3 - PullRequest
0 голосов
/ 11 декабря 2010

У меня есть 6 кнопок на одном слое, все с эффектами наведения и сортировки.Я назначил каждому имя экземпляра и попытался создать actioncript для привязки каждого изображения к Google, однако следующий код не работает:

function init():void {
    blogButton.addEventListener(MouseEvent.CLICK,onActionPerformed);
    homeButton.addEventListener(MouseEvent.CLICK,onActionPerformed);
    portfolioButton.addEventListener(MouseEvent.CLICK,onActionPerformed);
    aboutButton.addEventListener(MouseEvent.CLICK,onActionPerformed);
    signButton.addEventListener(MouseEvent.CLICK,onActionPerformed);
    contactButton.addEventListener(MouseEvent.CLICK,onActionPerformed);
}

function onActionPerformed(e:MouseEvent):void {
    switch(e.currentTarget) {
       case homeButton: navigateToURL(new URLRequest("http://google.com"), "_blank"); break;
       case blogButton: navigateToURL(new URLRequest("http://google.com"), "_self"); break;
       case portfolioButton: navigateToURL(new URLRequest("http://google.com"), "_self"); break;
       case aboutButton: navigateToURL(new URLRequest("http://google.com"), "_self"); break;
       case signButton: navigateToURL(new URLRequest("http://google.com"), "_self"); break;
       case contactButton: navigateToURL(new URLRequest("http://google.com"), "_self"); break;
    }
}

Нет ошибок или ошибок компиляции, просто никуда не денется.

РЕДАКТИРОВАТЬ Код был слегка изменен, однако все еще не работает. Я сделал ссылку для загрузки самого последнего FLA-файла: http://danlamanna.com/misc/navigation.fla

Ответы [ 3 ]

1 голос
/ 11 декабря 2010

Вы не запускаете функцию init, поэтому слушатели не настраиваются.

init();
0 голосов
/ 11 декабря 2010

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

blogButton.addEventListener(MouseEvent.CLICK,onActionPerformed);
homeButton.addEventListener(MouseEvent.CLICK,onActionPerformed);
portfolioButton.addEventListener(MouseEvent.CLICK,onActionPerformed);
aboutButton.addEventListener(MouseEvent.CLICK,onActionPerformed);
signButton.addEventListener(MouseEvent.CLICK,onActionPerformed);
contactButton.addEventListener(MouseEvent.CLICK,onActionPerformed);

function onActionPerformed(e:MouseEvent):void 
{
     switch(e.currentTarget) 
     {
         case homeButton: navigateToURL(new URLRequest("http://google.com"), "_blank"); break;
         case blogButton: navigateToURL(new URLRequest("http://google.com"), "_self"); break;
         case portfolioButton: navigateToURL(new URLRequest("http://google.com"), "_self"); break;
         case aboutButton: navigateToURL(new URLRequest("http://google.com"), "_self"); break;
         case signButton: navigateToURL(new URLRequest("http://google.com"), "_self"); break;
         case contactButton: navigateToURL(new URLRequest("http://google.com"), "_self"); break;

     }

}

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

addListeners();

function addListeners():void
{
    blogButton.addEventListener(MouseEvent.CLICK,onActionPerformed);
    homeButton.addEventListener(MouseEvent.CLICK,onActionPerformed);
    portfolioButton.addEventListener(MouseEvent.CLICK,onActionPerformed);
    aboutButton.addEventListener(MouseEvent.CLICK,onActionPerformed);
    signButton.addEventListener(MouseEvent.CLICK,onActionPerformed);
    contactButton.addEventListener(MouseEvent.CLICK,onActionPerformed);
}

function removeListeners():void
{
    blogButton.removeEventListener(MouseEvent.CLICK,onActionPerformed);
    homeButton.removeEventListener(MouseEvent.CLICK,onActionPerformed);
    portfolioButton.removeEventListener(MouseEvent.CLICK,onActionPerformed);
    aboutButton.removeEventListener(MouseEvent.CLICK,onActionPerformed);
    signButton.removeEventListener(MouseEvent.CLICK,onActionPerformed);
    contactButton.removeEventListener(MouseEvent.CLICK,onActionPerformed);
}

function onActionPerformed(e:MouseEvent):void
{
    switch(e.currentTarget)
    {
        case homeButton: navigateToURL(new URLRequest("http://google.com"), "_blank"); break;
        case blogButton: navigateToURL(new URLRequest("http://google.com"), "_self"); break;
        case portfolioButton: navigateToURL(new URLRequest("http://google.com"), "_self"); break;
        case aboutButton: navigateToURL(new URLRequest("http://google.com"), "_self"); break;
        case signButton: navigateToURL(new URLRequest("http://google.com"), "_self"); break;
        case contactButton: navigateToURL(new URLRequest("http://google.com"), "_self"); break;
    }
}
0 голосов
/ 11 декабря 2010

Вы должны добавить вызов к вашей функции init (). Используйте следующее:

function init():void 
{
        blogButton.addEventListener(MouseEvent.CLICK,onActionPerformed);
        homeButton.addEventListener(MouseEvent.CLICK,onActionPerformed);
        portfolioButton.addEventListener(MouseEvent.CLICK,onActionPerformed);
        aboutButton.addEventListener(MouseEvent.CLICK,onActionPerformed);
        signButton.addEventListener(MouseEvent.CLICK,onActionPerformed);
        contactButton.addEventListener(MouseEvent.CLICK,onActionPerformed);

}// end function

function onActionPerformed(e:MouseEvent):void 
{
 switch(e.currentTarget) 
 {
  case homeButton: navigateToURL(new URLRequest("http://google.com"), "_blank"); break;
  case blogButton: navigateToURL(new URLRequest("http://google.com"), "_self"); break;
  case portfolioButton: navigateToURL(new URLRequest("http://google.com"), "_self"); break;
  case aboutButton: navigateToURL(new URLRequest("http://google.com"), "_self"); break;
  case signButton: navigateToURL(new URLRequest("http://google.com"), "_self"); break;
  case contactButton: navigateToURL(new URLRequest("http://google.com"), "_self"); break;

 }// end switch

}// end function

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