help on design
J. Landman Gay
jacque at hyperactivesw.com
Thu Aug 18 18:28:42 EDT 2005
Charles Hartman wrote:
> Thanks (as always!). But I put those four handlers in my substack's
> stack script (and saved and closed the whole thing and removed it from
> memory, then reopened it and navigated in the main stack and opened the
> substack and navigated within it), and both the "go back" and "go
> forth" buttons can still jump out of the substack.
>
> I used the message box to check the lockRecent; it keeps coming up
> false, whether the substack is suspended or not. I found this in the docs:
>
> By default, the lockRecent property is set to false. It is reset to
> false when no handlers are executing.
>
> That looks like it might be the problem . . .
Aargh. Indeed. My apologies for running you around the block for
nothing. I should have double-checked that before I replied.
So, your original script will work okay if I remember right. Or you
could do something like this:
on opencard
global gCdList
if the short name of this stack is "theRightSubstack"
then put the ID of this card & cr after gCdList
end opencard
Then your forward and back buttons could check gCdList, get a lineoffset
to find the current card in the list, and use the next or previous line
in gCdList as the destination for the "go". If there isn't a previous or
next line in the list, then just go to the next or previous card in the
stack normally.
Another thought was to use the built-in "push" and "pop" commands to
build a list, but that may be more work than you want to do. You can
check the validity of a card to see if it meets your criteria and if so,
"push this card". That puts it at the top of an internal list that Rev
keeps. "Pop card" returns you to the previous pushed card in the list
and removes the entry from the list. Every subsequent "pop" moves you
backward through your visited cards. This would let you go backward
easily but not forward again, because popped entries are removed.
However, you can "pop card before gCdList" which would move the entry
from Rev's internal list and into your own global list. In that case,
gCdList would be storing the "forward" list and Rev would be storing the
"backward" list. It would probably work but you'd have two lists to keep
track of.
But be cautious about listening to me, obviously I am fuzzy today. ;)
--
Jacqueline Landman Gay | jacque at hyperactivesw.com
HyperActive Software | http://www.hyperactivesw.com
More information about the use-livecode
mailing list