Hi David,

Le 23 juin 07 à 12:15, David Glasgow a écrit :

I have a list field containing the names of JPGs. I want the selected image displayed. This is easy using mouseup or selectionchanged to trigger the appropriate URL being prepended to the filename, and the file displayed correctly.

However, I wanted users to be able to arrow up and down through the field, and the image to change just as if the selection had changed by being clicked on. Unfortunately, selectionchanged is not sent if the selection is changed via arrow keys. This is a bit sad, but documented as normal behaviour. This means you need to catch arrowkey, and then script accordingly.

I was surprised to discover that the selectedline reported in this way seems to lag one behind the actual selected line, and display an image adjacent to the correct one. I put the script in a group containing the list field, so I expected the selection to have changed by the time the message reached the group. But it doesn't. Que pasa?

I have worked around it by adding or subtracting one from the reported selectedline in a switch case structure, but then had to add script to test whether the tnewselectedline variable would be taken out of range by the calculation. Happy to have got it working, but I can't believe there isn't a better way of doing things (- isn't there always in Rev?).

If the selection change by arrow key triggered the selectionchanged message, my cludge wouldn't be needed at all. What have other folks done to achieve the same thing?

Here is a code snippet that might get you started.
You'll put it in the card script.

on arrowkey pKey
  if the number of lines of fld <My Field> > 2 then
    if (pKey = "up" and the hilitedLines of fld <My Field> = 1) then
set the hilitedLines of fld <My Field> to the number of lines of fld <My Field> else if (pKey = "down" and the hilitedLines of fld <My Field> = the number of lines of fld <My Field>) then
      set the hilitedLines of fld <My Field> to 1
    else
if pKey = "down" then set the hilitedLines of fld <My Field> to (the hilitedLines of fld <My Field> + 1) else set the hilitedLines of fld <My Field> to (the hilitedLines of fld <My Field> - 1)
    end if
    <Display Image>
  end if
end arrowkey

Note that it acts like a carousel.
Rev does not send selectionChanged when selection is changed by script: could bring recursion problems ;-)

Best regards from Paris,
Eric Chatonet.
----------------------------------------------------------------
Plugins and tutorials for Revolution: http://www.sosmartsoftware.com/
Email: [EMAIL PROTECTED]/
----------------------------------------------------------------


_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to