2010-12-11 51 views
0

J'ai 6 boutons sur le même calque, tous avec survoler les effets et le tri. J'affecté chacun un nom d'instance, et a essayé de faire actionscript pour relier chaque image à Google, cependant le code suivant ne fonctionne pas:Les boutons de liaison ne fonctionnent pas dans actionscript - flash cs4, AS3

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

Aucune erreur ou erreurs de compilation, tout ne va nulle part.

EDIT Le code a été légèrement modifié, mais ne fonctionne toujours pas, je fait un lien pour télécharger le fichier fla plus courant: http://danlamanna.com/misc/navigation.fla

+0

si vous mettez trace (e.currentTarget) en tant que la première ligne de la méthode onActionPerformed() elle sort ce que vous attendez? – greggreg

+0

Non, cependant, je n'ai jamais fait de sortie avec flash auparavant, alors devrais-je m'attendre à ce que google apparaisse dans la fenêtre de film, ou ouvre mon navigateur par défaut? De toute façon, il ne fait ni l'un ni l'autre. –

+0

bien s'il ne génère aucune sortie lorsque vous cliquez sur les boutons alors votre problème est avant l'appel de la méthode. Avez-vous essayé l'instruction trace? Il sort sur le panneau de sortie en flash. Au début de votre application, essayez de coder: trace ("je suis utile pour le débogage") – greggreg

Répondre

0

Si vous envisagez de quitter votre code sur la ligne de temps, et vos auditeurs ne doivent être mis à exécution, alors vous ne pas vraiment besoin d'envelopper l'auditeur instanciation dans une fonction que vous avez maintenant. Il suffit de les sortir de la fonction et les mettre au-dessus de la fonction onActionPerformed comme ceci:

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; 

    } 

} 

Si vous avez besoin d'ajouter et de supprimer dynamiquement les auditeurs parfois plus tard, essayer quelque chose comme ceci:

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

Vous devez ajouter un appel à votre fonction init(). Utilisez ce qui suit:

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(); 
1

Vous n'exécutez pas la fonction init de sorte que les écouteurs ne sont pas définis.

init();