Just as a challenge - something for you to do in your spare time - figure
out how you would implement a "forward" button to go with your back
button. Makes for a good exercise...
- Tab
At 02:27 PM 5/6/01 +0000, dimple uppal wrote:
>Thanx Chris for posting this query and Tab for solving it "in his head".
>Been looking for the same thing for the longest time!
>
>
>Regds
>
>Dimple
>
>>From: "Chris McCoy" <[EMAIL PROTECTED]>
>>Reply-To: [EMAIL PROTECTED]
>>To: [EMAIL PROTECTED]
>>Subject: Re: <lingo-l> Urgent and tough .....Please Help
>>Date: Sun, 06 May 2001 05:49:02 -0000
>>
>>Thanks man you saved me.
>>You really did.
>>I got what you mean.
>>Thanks a lot.
>>
>>
>>>From: Tab Julius <[EMAIL PROTECTED]>
>>>Reply-To: [EMAIL PROTECTED]
>>>To: [EMAIL PROTECTED]
>>>CC: [EMAIL PROTECTED]
>>>Subject: Re: <lingo-l> Urgent and tough .....Please Help
>>>Date: Sat, 05 May 2001 22:32:10 -0400
>>>
>>>
>>>What you want is a basic stack. It looks like this:
>>>
>>>on push info
>>> global stack
>>>
>>> if (voidP(stack)) then
>>> stack =[]
>>> end if
>>>
>>> add(stack, info)
>>>end
>>>
>>>
>>>
>>>on pop
>>> global stack
>>>
>>> if (voidP(stack)) then
>>> stack =[]
>>> end if
>>>
>>> -- If stack is empty, you have nothing to return. You can return VOID,
>>>or #empty,
>>> -- or whatever works for you. You could give an alert or just have a
>>>silent return.
>>> numItems =count(stack)
>>> if (numItems =0) then
>>> alert "Pops exceed pushes!" -- Or make a put statement, or
>>>something to let you know there's no more back
>>> return(VOID)
>>> end if
>>>
>>> -- Otherwise there's something to return
>>> info =stack[numItems] -- Retrieve the last entry
>>> deleteAt(stack, numItems) -- then kill it from the stack
>>>
>>> return(info) -- Send it back
>>>end
>>>
>>>
>>>so, to use it, you push whatever information you want to store. This could
>>>be a frame number, or a label, or whatever. Then, when they click the back
>>>button, you pop off the info, and go to whatever it is.
>>>
>>>So, as an example, when they click to go somewhere, you have a script
>>>attached to the button that first, before you relocate, remembers where you
>>>are. Let's say for the sake of this demonstration that it's the frame
>>>number (easy enough). So it's:
>>>
>>>on mouseUp
>>> -- This is attached to the button that takes you somewhere
>>>
>>> push(the frame)
>>>
>>> -- Now relocate, etc...
>>>end
>>>
>>>
>>>
>>>The back button, however, will retrieve the information, and go to it.
>>>
>>>on mouseUp
>>> -- This is specific to the back button.
>>>
>>> lastLoc =pop()
>>> if (voidP(lastLoc)) then
>>> alert "Can't go back any further!"
>>> return
>>> end if
>>>
>>> -- Otherwise, it's good
>>> go to frame lastLoc
>>>end
>>>
>>>
>>>I haven't tested this specific code out - just did it in my head - but it
>>>should be fine.
>>>
>>>- Tab
>>>
>>>
>>>At 01:22 AM 5/6/01 +0000, Chris McCoy wrote:
>>>>Hi everybody.
>>>>I have this problem...
>>>>I intend to implement a Back Button for my multimedia cd rom.
>>>>It's made with Director 8 and i want to add some smart features in it.
>>>>I searched the web for available tips and tricks and i came up with this
>>>>code:
>>>>
>>>>
>>>>property spriteNum
>>>>
>>>>global gBackList, gBack
>>>>
>>>>on prepareFrame me
>>>>if gBack = void then set gBack = false
>>>>if gBackList = void then set gBackList = []
>>>>if spriteNum < 1 then
>>>> --framescript
>>>> set totalBacks = count(gBackList)
>>>> if gBack = false then
>>>> --did not come from back button
>>>> if totalBacks > 0 then
>>>> set lastEntry = getAt(gBackList, totalBacks)
>>>> else
>>>> set lastEntry = ["", 0]
>>>> end if
>>>> if lastEntry <> [the moviePath & the movieName, the frame] then
>>>> --not thecurrent frame, add tothe list
>>>> add gBackList, [the moviePath & the movieName, the frame]
>>>> end if
>>>> else
>>>> --came from the back button. Remove last entry
>>>> deleteAt(gBackList, totalBacks)
>>>> set gBack = false
>>>> end if
>>>>end if
>>>>end
>>>>
>>>>on mouseUp me
>>>>if gBack = void then set gBack = false
>>>>if gBackList = void then set gBackList = []
>>>>if spriteNum >= 1 then
>>>> --is a button
>>>> if count(gBackList) > 1 then
>>>> --there are back locations
>>>> set gBack = true
>>>> set destination = getAt(gBackList, count(gBackList) - 1)
>>>> if the moviePath & the movieName = getAt(destination, 1) then
>>>> --same movie
>>>> go to frame getAt(destination, 2)
>>>> else
>>>> --different movie
>>>> go to frame getAt(destination, 2) of movie getAt(destination, 1)
>>>> end if
>>>> end if
>>>>end if
>>>>end
>>>>
>>>>on getBehaviorDescription me
>>>>return "Drop this behavior on the framescript of each frame you want ot be
>>>>included in the back button history. Also drop it on the back button and
>>>>the script does the rest."
>>>>end
>>>>
>>>>
>>>>The author of this code doesn't give much explanation of how to use it ...
>>>>
>>>>It is quite obvious that this script works only if in your movie you have
>>>>only buttons and the script...
>>>>Does anyone has the script for all cases....
>>>>I am asking much here i know...!!!
>>>>But if this someone has the solution to my problem
>>>>it would be very appreciated if he/she shares it with me...
>>>>Any recomentations?
>>>>Thanks for your time....
>>>>
>>>>
>>>>
>>>>_________________________________________________________________________
>>>>Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com.
>>>>
>>>>
>>>>[To remove yourself from this list, or to change to digest mode, go to
>>>>http://www.penworks.com/LUJ/lingo-l.cgi To post messages to the list,
>>>>email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED])
>>>>Lingo-L is for learning and helping with programming Lingo. Thanks!]
>>>
>>>
>>>[To remove yourself from this list, or to change to digest mode, go to
>>>http://www.penworks.com/LUJ/lingo-l.cgi To post messages to the list,
>>>email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED])
>>>Lingo-L is for learning and helping with programming Lingo. Thanks!]
>>
>>_________________________________________________________________________
>>Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com.
>>
>>
>>[To remove yourself from this list, or to change to digest mode, go to
>>http://www.penworks.com/LUJ/lingo-l.cgi To post messages to the list,
>>email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED])
>>Lingo-L is for learning and helping with programming Lingo. Thanks!]
>
>_________________________________________________________________________
>Get Your Private, Free E-mail from MSN Hotmail at http://www.hotmail.com.
>
>
>[To remove yourself from this list, or to change to digest mode, go to
>http://www.penworks.com/LUJ/lingo-l.cgi To post messages to the list,
>email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED])
>Lingo-L is for learning and helping with programming Lingo. Thanks!]
>
[To remove yourself from this list, or to change to digest mode, go to
http://www.penworks.com/LUJ/lingo-l.cgi To post messages to the list,
email [EMAIL PROTECTED] (Problems, email [EMAIL PROTECTED])
Lingo-L is for learning and helping with programming Lingo. Thanks!]