Dear List,
I don't know if this is a Lingo problem, but I think I probably need some
lingo to sort it out, so here goes. I have a list of people's names which
are scrolled up and down using arrows and a scroll bar. Information
pertaining to the person at the top of the scroll bars is displayed to the
right of the scroll bar, and flips over when the names list is moved. The
information for entries in the names list and the extended info is included
in sequential cast members which are changed over when any of the scroll
controllers are used. I'll put the Lingo for this at the end of the mail- it
probably looks quite clumsy to all you pros, but it seems to work so I'm
happy.
he problem is that if you use the scroll bar to quickly on large lists (i.e.
30+ names), quite often the sprite where the cast members should be is
empty. Director insists that the correct cast member is there (I've checked
using the "put" thingy), but nothing actually appears. Possibly the weirdest
part is that it remembers which of the members it's decided to display and
which it hasn't, so when you scroll up to where there were name, they're
still there, and when you go back down to the no names section, they're
still not there. Oh, and the corresponding extended information vanishes as
well. Finally, whenever this happens Director crashes; all my cast members
turn into xtra icons and I have to close Director and restart it.
What I'd like to know is can I do anything about this? Is it a known bug, or
is the file corrupt? If the file is corrupt, is there any way I can use my
(very labour intensive) casts in a 'clean' movie?
Thanks in advance for you help,
Yours,
Richard
here is the script, as promised;
This behaviour moves the names list up (or down, depending on how you look
at it) using arrow buttons. There is a similar behaviour for moving it down
(up).
On mousedown me
global currentname
set currentname = 3
repeat while the mousedown = true
if the membernum of sprite 3 <> 1 then
set x = 2
repeat while x < 9
set the locv of sprite x = the locv of sprite x + 1
set x = x+1
end repeat
if the locv of sprite 3 = 266 then
set the locv of sprite 2 = 198
set the locv of sprite 3 = 232
set the locv of sprite 4 = 266
set the locv of sprite 5 = 300
set the locv of sprite 6 = 334
set the locv of sprite 7 = 368
set the locv of sprite 8 = 402
set the membernum of sprite 3 = the membernum of sprite 3 -1
if ((the membernum of sprite 3) - 1) < 1 then
set the membernum of sprite 2 = 100
else
set the membernum of sprite 2 = the membernum of sprite 3 -1
end if
set the membernum of sprite 4 = the membernum of sprite 3 +1
set the membernum of sprite 5 = the membernum of sprite 3 +2
set the membernum of sprite 6 = the membernum of sprite 3 +3
set the membernum of sprite 7 = the membernum of sprite 3 +4
set the membernum of sprite 8 = the membernum of sprite 3 +5
end if
set the forecolor of sprite (currentname) = 209
set the forecolor of sprite (currentname-1) = 255
set the forecolor of sprite (currentname+1) = 255
updatestage
else
if the membernum of sprite 3 = 1 then
set currentname = 3
end if
set the forecolor of sprite (currentname) = 209
set the forecolor of sprite (currentname+1) = 255
updatestage
end if
set the locv of sprite 13 = 236 + integer (((the membernum of sprite
(currentname))*1.61)-1.61)
set the membernum of sprite 14 = the membernum of sprite (currentname)
end repeat
end
This one is what's attached ti the marker on the scroll bar;
On mousedown me
global currentname
set the locv of sprite 2 = 198
set the locv of sprite 3 = 232
set the locv of sprite 4 = 266
set the locv of sprite 5 = 300
set the locv of sprite 6 = 334
set the locv of sprite 7 = 368
set the locv of sprite 8 = 402
repeat while the mousedown = true
set the locv of sprite 13 = the mousev
if the mousev > 396 then set the locv of sprite 13 = 396
if the mousev < 236 then set the locv of sprite 13 = 236
if (integer(((the locv of sprite 13)-236)/1.61)) < 1 then
set the membernum of sprite 3 = 1
else
set the membernum of sprite 3 = integer(((the locv of sprite
13)-236)/1.61)
end if
if the membernum of sprite 3 - 1 < 1 then
set the membernum of sprite 2 = 100
else
set the membernum of sprite 2 = the membernum of sprite 3 -1
end if
set the membernum of sprite 4 = the membernum of sprite 3 +1
set the membernum of sprite 5 = the membernum of sprite 3 +2
set the membernum of sprite 6 = the membernum of sprite 3 +3
set the membernum of sprite 7 = the membernum of sprite 3 +4
set the membernum of sprite 8 = the membernum of sprite 3 +5
set the forecolor of sprite 3 = 209
set the forecolor of sprite 2 = 255
set the forecolor of sprite 4 = 255
set the membernum of sprite 14 = the membernum of sprite 3
updatestage
end repeat
end
So there you go. I know I've probably taken the long way round on a lot of
this, but I can follow it and see it working, which is important for my tiny
brain.
[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!]