Imaging lingo table

-- aleXtra -- ©05 Alex da Franca --
Version 1.2.1, Release date: 07/28/06 (self-install version)

  • Use this LDM to display a grid table, a dialog or a menu as one sprite or overlay in a 3-D scene.

  • For use with the Macromedia Director.

  • It is fully customizable and works cross platform and in shockwave

  • "aleXtra_ILtable.dcr" LDM with all its scripts
  • ... and Macromedia Director 8 and higher.
  • Import "aleXtra_ILtable.dcr" file as Linked Director Movie: File -> Import...
  • Drag it to the score/stage (move it offstage)
  • Extend the sprite span to begin at least one frame before the frame you wish to use the table scripts (in fact you can extend the sprite span to cover all frames in your movie as this sprite is only used as a pool of scripts. Think of it as kind of a castlib.)
  • Move the playback head to a sprite within the sprite range of the sprite with the LDM
  • Type the following into the message window:
    tell sprite <x> to put interface()
    where <x> is the channelnumber of the LDM sprite)
    Some infos and the next steps you should take are explained in the message window
  • Basically these are the following options:
    • -- Install the required scripts to build a simple table:
      tell sprite <x> to mInstallRequiredTableScripts <y>
      (<x> => LDM channelnumber and <y> (optional) => table channelnumber, if any)
    • -- or install the required scripts to build a drop down menu using the table scripts:
      tell sprite <x> to mInstallRequiredMenuTableScripts <y>
      (<x> => LDM channelnumber and <y> (optional) => menu button channelnumber, if any)
    • -- or install the required scripts to build a context menu using the table scripts:
      tell sprite <x> to mInstallRequiredContextMenuScripts <y>
      (<x> => LDM channelnumber and <y> (optional) => 3-D sprite, if any)
    • -- or install the required scripts to build a dialog using the table scripts:
      tell sprite <x> to mInstallRequiredDialogTableLoadScripts <y>
      (<x> => LDM channelnumber and <y> (optional) => 3-D sprite, if any)


  • Customize the table appearance in the scriptmember "defaultLayoutDefinitions": Background, color, margins etc. There is for each hanlder a case statement, where you can define the variables for a "layout", which you name and use this name when building the table. For the behaviors you can specify which layout to use in the GPDL dialog.


  • Entirely written in lingo, no xtras required -> x-platform and shockwave safe
  • Data input via lingo lists, tab delimited text or xml string
  • Only one spritechannel needed to render each table as 2-D bitmap sprite OR the exact same scripts can also be dropped onto any existing shockwave3d sprite to display the table as an overlay
  • Additional to the use on a 2-D sprite or 3-D member the "host" can also be a scriptinstance, which retrieves the table image and send the user input events table (e.g. for usage as texture)
  • The appearance is fully customizable through numberous properties, which can be defined in a script, which lists all available options
  • Every cell can override most of the properties and define its own events and additional data
  • Events sent to each cell are selection and rolloevr events and text input events for editable text cells
  • Properties can also be defined on a row- or column-basis
  • Lines can have alternative background colors provided in a list of colors (can be any number of colors, not only 2)
  • Cells can contain text, editable text or images
  • Text cells can either wrap to multiple lines or cropped to fit into one line
  • Editable text cells can constrain char and number of chars
  • Image cells support director ink types and can be defined to either scale or crop or extend the column width
  • Prerendered text can be stored for not dynamic content, so that it builds faster and is independant from fonts or code pages
  • There are many "special" cells to act as a button, checkbox, radio option, sort columns, filter columns.
  • Columns can optional be resizable and/or can be dragged to other position
  • Two rendering modes: all in one big image (fast scrol, but more RAM and time to build) or render on demand in only the visible area
  • Background can be either color, image (scrolling or fixed) or transparent
  • Horizontal cells can be combined (=> colspan > 1)
  • Different highlight and selection modes for cells: #invert, #drawFrame, #useHighLightColor, #blend, #underline
  • Different animation modes for the appearance of the table, menu or dialog on the stage (esp. useful for menus and dialogs)
  • Customizable scrollbars or "autoscroll" mode (scroll on mouseover the egde)
  • Customizable drop shadows
  • Paste tab delimited text into the table
  • Get table data as tab delimited text
  • Insert and delete cells, rows or columns
  • Support for vList xtra -> store the whole list setup in a external vList file
  • Keyboard shortcuts for cells (useful for buttons in dialogs for example)
  • ...more (Please refer to the docs to read a listing of events, which are sent and can be received)


  • Read the comments at the top of the Behaviors
  • call interface() on the sprites:
    put sendSprite(<y>, #interface)
    (NOTE that the movie must be playing to be able to use sendSprite)
  • Drop me a line: Alex da Franca


  • Version 1.2.1 from 28 June 2007

    • bugfixes:
      images background color

  • Version 1.2 from 15 May 2007

    • added:
      Thos properties allow to changethe color and the size of the highlight rect for editable text. Note that a value of 0 for #textfocusSize will hide the selection rect.

    • added editable textcell property #hiddentext to support password style text entry fields by obfuscating user input
      #hiddentext is a string which shall be a single char which replaces the user input, use * or ◊ or • for example

    • added cell property #mouseDownSound and #mouseUpSound
      Those properties are strings which evaluate to a sound member, which will be played via puppetsound on click.

    • some significant performance improvements due to replacement of
      (the environment).productversion with the productversion and 3-d picking, when used on a 3-d model as texture.

    • added public handler: mMoveAllTables point
      this loops through all tables of a table manager instance and moves them relative by <point>
      useful for resizable movies, so you don't need to loop yourself through all tables of a table manager object.
      Nothing more to it, it's just a simple repeat loop which calls mMoveTable

    • added support for OSControl scrollbars
      if tableformatlist.getaprop(#OSControlbarName) is a string, the sprite with the name tableformatlist.getaprop(#OSControlbarName) will be used as scrollbar.
      This sprite must be an OSControl scrollbar sprite and respond to specific events.
      You can tell the LDM to install the required behavior on a OSControl sprite like so: mInstallOSControlScrollerScripts channelNumber, scrollbarname



  • This set of scripts is free of charge, however you are not allowed to remove the copyright marks in the scripts. All rights on the scripts are reserved.

    If you use it for a paid job and it saved you some time and you feel generous, you are welcome to support my work by donating via
    PayPal Donation
    (PayPal), whatever you think is appropriate.

  • Use the scripts at your own risk.