thanks bruce -- i was kind of poking around for a definitive as to when to use global or property and this explained it perfectly. (even tho wasn't my question) -- carol
> ---------- > From: Bruce Epstein - Zeus Productions > Reply To: [EMAIL PROTECTED] > Sent: Wednesday, November 14, 2001 11:30 AM > To: [EMAIL PROTECTED] > Cc: [EMAIL PROTECTED] > Subject: Re: <lingo-l> Moving sprites > > At 06:02 PM -0500 11/13/01, "Genevieve Young" <[EMAIL PROTECTED]> > wrote: > >In Lingo in a Nutshell, Pg 331, Bruce Epstein has thoroughly confused > me: > > > >�Property variables ( beginning with the letter �p� for clarity ) are > used > >instead > >of global variables. Properties are declared with the keyword property, > >and can contain a different value for each instance of the object (that > is, > >each timer). If we used global, multiple timers would trample the values > >held in the globals.� > > > Note: I don't usually have time to monitor all posts on Lingo-L, so write > to me privately at [EMAIL PROTECTED] if you have a question about > something in one of my books. > > The above quote is taken a bit out of context. In the book, I first > explain > how to make a "timer." Then, to explain objects and property variables, I > explain how to make a *re-usable* timer. The above sentence is a little > harder to understand out of context and without the formatting. There is > an > extensive discussion of global and property variables throughout the book. > There is also a slight misquote. The book explains: > > "Note these differences [in example 12-8] from the procedural version [of > the timer shown earlier] in Example 12-5: > > <i>Property</i> variables (beginning with the letter "p" for clarity) are > used instead of <i>global</i> variables. Properties are declared with the > keyword <i>property</i>, and can contain a different value for each > instance of the object (that is, each timer). If we used globals, multiple > timers would trample the values held in the globals. > > Here's what I mean: > > By definition, globals (i.e. global variables) are shared among every > piece > of Lingo that uses them. Therefore, if I change a global variable called > "gCurrentTime", it affects every place that it is used. Thus, you couldn't > create multiple independent timers that used a single global variable (all > timers would always "share" the same time). If you wanted to implement 3 > independent timers using global variables, you'd need a separate global > variable for each one (such as "gCurrentTime1", "gCurrentTime2" and > "gCurrentTime3"), which is very annoying and inefficient. > > When you want to create multiple similar things that are independent, it > is > usually a good idea to use property variables. In the example, to create a > "reusable timer" we can declare "pCurrentTime" as a property variable. > When > we create separate timers from a timer object (as explained in the book), > each timer gets its own *copy* of pCurrentTime. Lingo handles the > book-keeping for you automatically so that each "instance" of the timer > can > easily access its own pCurrentTime. > > Does that clarify things? > > Regards, > Bruce > > > > > > ----- > "Dreamweaver in a Nutshell" published by O'Reilly & Associates. > Co-authored by Bruce Epstein and Heather Williamson > http://www.amazon.com/exec/obidos/ASIN/0596002394/ref%3Dnosim/zeusproducti > ons > Sample chapter: > http://www.oreilly.com/catalog/dreamweavernut/chapter/ch06.html > ----- > > > > [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!]
