8 Replies Latest reply: Aug 15, 2012 6:15 AM by John Delamotte RSS

    How to make a back button?

    John Delamotte Community Member

      I want to make a back button, but I'm not really sure how to do this. I did some research and some people said you need an array. I've never made an array before. Everyone of my frames have a label and multiple ways to get to that frame. Can anyone help me with this? Any help would be appreciated, thank you.

        • 1. Re: How to make a back button?
          esdebon Community Member

          The array will be a list of your steps

           

          define the array:

           

          var myBackList:Array=new Array();

           

          now every time it you change to another frame, add to the list (array) the label name of the frame

           

          i.e.

           

          myButtonGoToFirstSection.addEventListener(MouseEvent.CLICK, gotoFirstSection)

          function gotoFirstSection(e:MouseEvent):void{

                   gotoAndStop("FirstSeccion")

                    myBackList.push("FirstSeccion") //this add the the label to the array

          }

           

           

          then the code to the back button is:

           

          myBackButton.addEventListener(MouseEvent.CLICK, goBack)

          function goBack(e:MouseEvent):void{

                    gotoAndStop(myBackList.pop())

          }

          • 2. Re: How to make a back button?
            John Delamotte Community Member

            So I have to add this  myBackList.push("FirstSeccion") to everyone of my buttons. How does it know the order of the frames in the array? And does it remove them from the array when call upon or overwritten with "myBackButton"?

            • 3. Re: How to make a back button?
              esdebon Community Member

              yes, you must add to each button, the array is a stack and added in the order they arrive, to "back" you will always take the last.

              The pop method, gets the last value and delete it

               

              gotoAndStop(myBackList.pop())

              • 4. Re: How to make a back button?
                John Delamotte Community Member

                Ok I have a problem with the back button.

                 

                Example frame 1, frame 2, frame 3, frame 4, frame 5

                 

                I start at frame 1 and go to 2, 3, 4, and then 5. It will only let me go back to frame 2. So if I start going forward again from frame 2 and go to 3, 4, and then 5. I can only go back to frame 3.

                 

                I think the problem is it removes the frames before entering the current frame. How do I fix this?

                 

                Thanks in advance - John

                • 5. Re: How to make a back button?
                  esdebon Community Member

                  You are not using the same code above,  can you show your code?

                  • 6. Re: How to make a back button?
                    John Delamotte Community Member

                    stop();

                     

                    var myBackList:Array=new Array();

                     

                    bioBut.addEventListener(MouseEvent.CLICK, gotoBiographies);

                    overviewBut.addEventListener(MouseEvent.CLICK, gotoOverview);

                    commemorationBut.addEventListener(MouseEvent.CLICK, gotoCommemoration);

                    GettingStartedButt.addEventListener(MouseEvent.CLICK, gotoAboutTheLesson);

                    myBackButton.addEventListener(MouseEvent.CLICK, goBack);

                     

                     

                    function gotoBiographies(event:MouseEvent):void

                    {

                        gotoAndStop("bios");

                        myBackList.push("bios");

                    }

                    function gotoOverview(event:MouseEvent):void

                    {

                        gotoAndStop("overview");

                        myBackList.push("overview");

                    }

                    function gotoCommemoration(event:MouseEvent):void

                    {

                        gotoAndStop("commemorationFrame");

                        myBackList.push("commemorationFrame");

                    }

                    function gotoAboutTheLesson(event:MouseEvent):void

                    {

                        gotoAndStop("aboutTheLesson");

                        myBackList.push("aboutTheLesson");  

                    }

                    function goBack(e:MouseEvent):void

                    {

                        gotoAndStop(myBackList.pop());

                    }

                    • 7. Re: How to make a back button?
                      esdebon Community Member

                      stop();

                      var myBackList:Array=new Array();

                       

                       

                      bioBut.addEventListener(MouseEvent.CLICK, gotoBiographies);

                      overviewBut.addEventListener(MouseEvent.CLICK, gotoOverview);

                      commemorationBut.addEventListener(MouseEvent.CLICK, gotoCommemoration);

                      GettingStartedButt.addEventListener(MouseEvent.CLICK, gotoAboutTheLesson);

                      myBackButton.addEventListener(MouseEvent.CLICK, goBack);

                       

                       

                      function gotoBiographies(event:MouseEvent):void {

                          gotoAndStop("bios");

                          myBackList.push("bios");

                          trace(myBackList)

                       

                      }

                      function gotoOverview(event:MouseEvent):void {

                          gotoAndStop("overview");

                          myBackList.push("overview");

                          trace(myBackList)

                      }

                       

                      function gotoCommemoration(event:MouseEvent):void {

                          gotoAndStop("commemorationFrame");

                          myBackList.push("commemorationFrame");

                          trace(myBackList)

                      }

                       

                      function gotoAboutTheLesson(event:MouseEvent):void {

                          gotoAndStop("aboutTheLesson");

                          myBackList.push("aboutTheLesson");

                          trace(myBackList)

                       

                      }

                       

                       

                      function goBack(e:MouseEvent):void {

                          trace(myBackList);

                          var frameGo:String=myBackList.pop();

                          (currentLabel==frameGo)?gotoAndStop(myBackList.pop()):gotoAndStop(frameGo);

                          trace(myBackList);

                          trace("---------");

                      }

                      • 8. Re: How to make a back button?
                        John Delamotte Community Member

                        Thanks for your help, kglad came up with a slightly different solution with booleans. Again thank you for your help. Heres what he came up with:

                         

                        stop();

                         

                        var myBackList:Array=new Array();

                         

                        var backFrame:*;

                         

                        var forwardFrame:* = 1;

                         

                        var addForwardBool:Boolean = false;

                         

                        var addBackBool:Boolean = false;

                         

                        myBackList.push(1);

                         

                        bioBut.addEventListener(MouseEvent.CLICK, gotoBiographies);

                        overviewBut.addEventListener(MouseEvent.CLICK, gotoOverview);

                        commemorationBut.addEventListener(MouseEvent.CLICK, gotoCommemoration);

                        GettingStartedButt.addEventListener(MouseEvent.CLICK, gotoAboutTheLesson);

                         

                         

                        function gotoBiographies(event:MouseEvent):void

                        {

                            addForwardBool=true;

                            addFrameF();

                            forwardFrame="bios";

                            gotoAndStop("bios");

                        }

                        function gotoOverview(event:MouseEvent):void

                        {

                            addForwardBool=true;

                            addFrameF();

                            forwardFrame="overview";

                            gotoAndStop("overview");

                        }

                        function gotoCommemoration(event:MouseEvent):void

                        {

                            addForwardBool=true;

                            addFrameF();

                            forwardFrame="commemorationFrame";

                            gotoAndStop("commemorationFrame");

                        }

                        function gotoAboutTheLesson(event:MouseEvent):void

                        {

                            addForwardBool=true;

                            addFrameF();

                            forwardFrame="aboutTheLesson";

                            gotoAndStop("aboutTheLesson");

                        }

                        function goBack(e:MouseEvent):void

                        {

                            backFrame=myBackList.pop();

                         

                            if(backFrame)

                            {

                                addBackBool=true;

                         

                                gotoAndStop(backFrame);

                            }

                        }

                        function addFrameF():void

                        {

                            if (forwardFrame && addForwardBool)

                            {

                                myBackList.push(forwardFrame);

                            }

                         

                            if (backFrame && addBackBool)

                            {

                                myBackList.push(backFrame);

                            }

                         

                            addBackBool=false;

                         

                            addForwardBool=false;

                        }