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)
added: tableformatlist.getaprop(#editTextFrameColor)
and tableformatlist.getaprop(#textfocusSize)
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), whatever you think is appropriate.