2009-09-06 6 views
0

J'ai un modèle de site Web Flash (quatre pages) que j'ai fait en utilisant AS 3.0 et Flash CS4. C'est pour une cession impliquant des clips. Actuellement, sur la ligne de temps principale, il n'y a qu'un seul cadre, et trois couches: actions/menu/contenu.Contrôle des séquences vidéo à partir de la ligne de temps principale au lieu d'utiliser leurs lignes de temps individuelles?

Le actionscript sur la ligne de temps principale est tout simplement:

content_mc.stop(); 

Il y a un clip sur la scène appelée « Content » qui contient le contenu de chacune des pages. A l'intérieur de celui-ci, il y a un clip "Menu" qui contient et contrôle tous les boutons de navigation. Le actionscript pour le clip Menu est:

function homeBtnPress (event:MouseEvent):void{ 
//comments here 
//comments here 
MovieClip(parent).content_mc.gotoAndStop("home"); 
} 


function aboutBtnPress (event:MouseEvent): void{ 
MovieClip(parent).content_mc.gotoAndStop ("about"); 
} 

function servicesBtnPress (event:MouseEvent): void{ 
MovieClip (parent).content_mc.gotoAndStop ("services"); 


} 

function contactBtnPress (event:MouseEvent): void{ 
MovieClip (parent).content_mc.gotoAndStop ("contact"); 
} 

function portfolioBtnPress (event:MouseEvent): void{ 
MovieClip (parent).content_mc.gotoAndStop ("portfolio"); 

} 

home.addEventListener(MouseEvent.CLICK, homeBtnPress); 
about.addEventListener(MouseEvent.CLICK, aboutBtnPress); 
services.addEventListener(MouseEvent.CLICK, servicesBtnPress); 
contact.addEventListener(MouseEvent.CLICK, contactBtnPress); 
portfolio.addEventListener(MouseEvent.CLICK, portfolioBtnPress); 

Alors tout fonctionne bien, mais mon instructeur me veut contrôler le menu/contenu de la principale ligne de temps en utilisant l'outil de chemin cible. Que devrais-je cibler exactement - juste les clips "menu" et "contenu", et quel code utiliser? Désolé si je ne vous explique pas très bien, je suis assez confus.

Voici les commentaires de mon instructeur:

« Alors que nous avons appris à contrôler le scénario principal et le calendrier d'un autre clip à partir d'un clip, ce n'est pas la façon la plus intuitive à l'écriture et marques pour un débogage difficile. Vous devrez donc explorer comment cibler vos boutons à l'intérieur de votre clip de menu et les images du clip de contenu à partir du scénario principal. "

Merci beaucoup d'avance!

Répondre

1

Cette tâche est très basique mais pratique.

Jetez un oeil here et here pour avoir l'idée. Le deuxième tutoriel utilise ActionScript 2, mais l'idée est la même. Faites un test, allez dans le scénario principal, dans ActionsPanel, choisissez insérer le chemin cible et sélectionnez un clip de menu. faites de même à l'intérieur de conent_mc et voyez comme le chemin est différent. Essayez d'avoir une idée de la façon dont vous pouvez accéder à vos clips (un peu comme les dossiers sur votre système de fichiers).

Votre tuteur est droite:

  1. Si vous avez du code dans le lieu (dans de nombreux clips vidéo) et nouveau besoin de revoir ce projet dans environ un vous aurez mois fogotten où tous le code pour tous les complexes mouvement des menus/contenu est et perdre du temps et de l'énergie.
  2. Copier/coller le code est bon pour obtenir les choses, mais dès qu'ils fonctionnent, et vous avez compris comment, essayez l'écrire d'une manière qui rend facile à modifier sans avoir à changement à beaucoup de votre code.

Ce code, écrit dans le scénario principal ressemblerait peut-être comme ceci:

//setup menu click handlers 

content_mc.home.addEventListener(MouseEvent.CLICK, menuPress); 
content_mc.about.addEventListener(MouseEvent.CLICK, menuPress); 
content_mc.services.addEventListener(MouseEvent.CLICK, menuPress); 
content_mc.contact.addEventListener(MouseEvent.CLICK, menuPress); 
content_mc.portfolio.addEventListener(MouseEvent.CLICK, menuPress); 
//take advantage of the fact that your button name is the same as the frame label in content_mc 
function menuPress(event:MouseEvent):void{ 
    content_mc.gotoAndStop(event.currentTarget.name); 
} 

Je l'ai utilisé currentTarget parce que retourne l'objet qui a été cliqué, pas un enfant, selon le mouseChildren être vrai/faux et l'événement bouillonnant, ce qui est quelque chose que vous pourriez vouloir regarder plus tard.

0
var btnArray:Array = [content_mc.home,content_mc.about,content_mc.service,content_mc.contact,content_mc.portfolio]; 
for(var i:uint=0;i<btnArray.length;i++) 
{ 
    btnArray[i].addEventListener(MouseEvent.CLICK, action); 
} 
function action(e:MouseEvent):void 
{ 
    content_mc.gotoAndStop(event.currentTarget.name); 
} 

Je viens de simplifier le code.

Questions connexes