[comp.sys.mac.hypercard] script help

twakeman@hpcea.CE.HP.COM (Teriann Wakeman) (09/23/88)

Anyone have a way for a script on one stack to test for the existance
of a card button on a different stack??? I would prefer a method that
is compatable with vers 1.0.1 {I do not expect that everyone using my
stackware will have the latest version or even know how to upgrade.
When I do with something that requires a certain version or newer,
I first ask the version, then, if it is too old, state that the user 
needs version X.X.X or newer. Included in the message are instructions
on how to obtain a Hypercard upgrade.}

How about a script that can determine the CPU {6800,020, 030} on stack
open so that I can change the number of times a second script goes
through an event loop??

Any help would be appriciated

TeriAnn

beard@ux1.lbl.gov (Patrick C Beard) (09/25/88)

In article <6410017@hpcea.CE.HP.COM> twakeman@hpcea.CE.HP.COM (Teriann Wakeman) writes:
>How about a script that can determine the CPU {6800,020, 030} on stack
>open so that I can change the number of times a second script goes
>through an event loop??
>

Best way to do this is to use "Ticks" to get hardware independent
60th's of a second resolution delays.  This is always guaranteed to
work.

>Any help would be appriciated
>
>TeriAnn

Hope this helps.

Patrick Beard
beard@ux1.lbl.gov

twakeman@hpcea.CE.HP.COM (Teriann Wakeman) (09/28/88)

What I am doing with this script is showing an introductory card for people
to read when the application is starting. At the end of about 8 seconds, Hypercard automatically goes to a different card. If during the 8 seconds, the user
wants to get additional info, she can press at mouse which will take the user
from the introduction card to an additional info card. A wait command
shuts things down for a given amount of time. The script dosn't see
the mousedown while waiting. To get around this I wrote an event loop that
looks for a mousedown for about 8 seconds then if the event does not happen,
goes to the central card of the application. The only problem I have
for the event loop is the time it takes a Mac+ and a IIx to go through
the loop x times. I want to make x a var whose value depends upon the
type of CPU {& thus approx speed}.

TeriAnn

aisl@uhura.cc.rochester.edu (Lawrence Landry) (09/28/88)

In article <6410018@hpcea.CE.HP.COM> twakeman@hpcea.CE.HP.COM (Teriann Wakeman) writes:
>What I am doing with this script is showing an introductory card for people
>to read when the application is starting. At the end of about 8 seconds, Hypercard automatically goes to a different card. If during the 8 seconds, the user
>wants to get additional info, she can press at mouse which will take the user
>from the introduction card to an additional info card. A wait command

You can use the ticks to time how long the current card is open.  But don't
try to do all of the work in one script.  HyperCard has an idle message that
is sent whenever nothing interesting is happening.  Use this to test for the
delay and use a mouseUp handler to go to the appropriate information card.
Put the following scripts in the card of interest.   They should work.

on openStack
   global the ticks + 8 * 60 into closeTime -- the current time plus 8 seconds
end openStack

on idle
   global closeTime
   if the ticks > closeTime then go card "Different Card"
end idle

on mouseUp
   go card "More Information"
end mouseUp

Hope this helps.

Larry Landry
University of Rochester

Scot.Kamins@f555.n125.z1.FIDONET.ORG (Scot Kamins) (09/29/88)

This answers your wait-state problem, but in a different way than you had asked it be answered: rather than changing cards at a specificly timed interval, can you let the user decide? (That is, something like 
    wait until the mouse is down
then go to whatever card.) Unless you're trying to increase somebody's reading speed, it's not a good idea (from a human interface point of view) to control how long somebody has to read something: fast readers get bored waiting, and slow readers get frustrated because the card's gone before they're through.


--  
Scot Kamins - via FidoNet node 1:125/406
UUCP: ...!sun!hoptoad!fidogate!555!Scot.Kamins
ARPA: Scot.Kamins@f555.n125.z1.FIDONET.ORG