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!]

Reply via email to