2017-08-28 1 views
0

est ici comme ce qu'il est censé faire:sur plus de travail non cadre a sauté dans Actionscript 3.0

  1. Il y a un bouton de démarrage et un bouton de reprise à l'écran d'accueil. Au fur et à mesure que les images progressent, il y a un bouton "sauvegarder la progression & retour à la page d'accueil" qui sauvegardera l'image en cours et retournera à l'écran d'accueil.
  2. Retour à l'écran d'accueil, lorsque vous cliquez sur "reprendre", il vous ramène à l'image précédente que vous étiez.
  3. Et ... et ainsi de suite.

J'ai fait 1-3. Mais quand il revient à l'image précédente, les boutons ne semblent plus fonctionner. Comme, vous ne pouvez plus progresser et déplacer les images vers l'avant.

Voici une capture d'écran: screenshot

Alors, voici les codes pour les deux actionscripts ci-dessus:

Cadre 1:

stop(); 

start_btn.addEventListener(MouseEvent.CLICK, gotoIntro); 

function gotoIntro(event:MouseEvent):void 
{ 
    gotoAndStop('intro'); 
} 

resume_btn.addEventListener(MouseEvent.CLICK, gotoLastFrame); 

function gotoLastFrame(event:MouseEvent):void 
{ 
    gotoAndStop(lastFrame); 
    trace(currentFrame); 
} 

Frame 2:

var lastFrame:int = currentFrame; 

next_btn.addEventListener(MouseEvent.CLICK, gotoNext); 

function gotoNext(event:MouseEvent):void 
{ 
    nextFrame(); 
    lastFrame++; 
    trace("current frame: " + currentFrame + "; saved frame: " + lastFrame); 

} 

back_btn.addEventListener(MouseEvent.CLICK, gotoHome); 

function gotoHome(event:MouseEvent):void 
{ 
    gotoAndStop('home'); 
    trace(lastFrame); 
} 

C'est pour un futur roman visuel simple que je ferais aime faire dans le futur. Mais lol je suis déjà coincé ici hahaha. Quelqu'un peut-il aider à déplacer les images vers l'avant à nouveau? Merci beaucoup!

Répondre

1

Le problème sont vos cadres. Les images sont toujours difficiles à gérer. Lorsque vous passez à l'image 2, un écouteur d'événement est ajouté à votre bouton Suivant. Quand vous allez ensuite à l'image 3 et ensuite à l'image 1, votre bouton est retiré de la scène. Lorsque vous revenez à l'image 3, un nouveau bouton "suivant" est ajouté à la scène mais il n'y a pas d'écouteur d'événement pour cela (parce que vous avez ignoré l'image 2 où elle est ajoutée).

Une solution facile serait de déplacer vos nouvelles images à un propre MovieClip avec le code et l'appeler "myNovel" comme nom d'instance. Déplacez votre écran de démarrage à un autre MovieClip et appelez-le "myStartScreen". Les deux sont sur la scène de l'image 1 mais votre roman est invisible. En fait, vous n'avez besoin que d'une image sur votre montage principal

Ensuite, lorsque vous cliquez sur Démarrer ou sur Suivant, l'écran de démarrage est invisible et votre roman est visible. Vous n'avez même pas besoin de vous souvenir du cadre car il restera dans le cadre qui vous reste.

Code scénario principal:

// make novel invisible at the beginning 
myNovel.visible = false; 

function gotoHome():void 
{ 
    // the novel will stay in the current frame 
    myStartScreen.visible = true; 
    myNovel.visible = false; 
} 

// startFromTheBeginning is an optional parameter 
function gotoNovel(startFromTheBeginning:Boolean = false):void 
{ 
    // the novel will stay in the current frame 
    myStartScreen.visible = false; 
    myNovel.visible = true; 

    if(startFromTheBeginning) 
    { 
     myNovel.gotoAndStop(1); 
    } 
} 

code écran de démarrage:

start_btn.addEventListener(MouseEvent.CLICK, gotoIntro); 

function gotoIntro(event:MouseEvent):void 
{ 
    // parent is the parent moveiclip (your main timeline with the code above) 
    parent.gotoNovel(true); // start from the beginning 
} 

resume_btn.addEventListener(MouseEvent.CLICK, gotoLastFrame); 

function gotoLastFrame(event:MouseEvent):void 
{ 
    parent.gotoNovel(); // this will make the novel visible that are in the frame that the user left 
} 

Code Novel

next_btn.addEventListener(MouseEvent.CLICK, gotoNext); 

function gotoNext(event:MouseEvent):void 
{ 
    nextFrame(); 
} 

back_btn.addEventListener(MouseEvent.CLICK, gotoHome); 

function gotoHome(event:MouseEvent):void 
{ 
    parent.gotoHome(); 
} 
+0

Woah Je pense que ce serait une bonne idée, mettre à la fois le début et la roman dans deux clips différents. Je n'ai même pas pensé à cela: D Merci, mais dans ce cas, comment puis-je obtenir cette fonction où je peux revenir à l'écran de démarrage, et quand je clique sur le bouton "reprendre" à l'écran de démarrage, je peux revenir à cette dernière image j'étais dans? –

+0

Relisez mes commentaires - le "code d'écran de démarrage" devrait être dans le movieclip strtscreen et "code roman" - dans le roman MovieClip. Ce code appelle les fonctions sur votre ligne de temps principale – Philarmon