| VLIST XTRA HELP: WHAT VLIST XTRA DOES |
| vList Xtra saves and retrieves Lingo lists and other data types in binary format using either an external file or a cast member for storage. Lists are a powerful and fast way to manage all kinds of information in Director. Since lists can hold Director's rich media and data types they are the natural solution for creating Director databases, yet few developers use them this way. Why? Because saving and retrieving lists at runtime using Director's built-in string() and value() methods is slow and limited. vList Xtra offers the following advantages over Director's own list saving methods: RELIABILITY vList correctly retrieves lists regardless of the data content. Director's value() function is tripped up by certain list content and may not be able to rebuild a list saved as a string. DATA PROTECTION vList Xtra offers optional encryption of a stored list using AES (Advanced Encryption Standard) encryption , the standard for secret-key encrypted transfer of unclassified information recently adopted by NIST, the US National Institute of Standards, as a replacement for DES.Encryption can protect sensitive data as well as cast member media that is expensive to produce such as the new 3D cast members in Director 8.5. COMPRESSION vList offers optional ZIP compression of stored data. Compression reduces the time necessary to transmit data and decreases the disk space needed. INTERNET FEATURES vList can save data to the user's local drive from Shockwave, convert data to Base64 strings for transmission to web servers using postNetText, and it can load vList files from the local hard drive or from remote URL's. PERFORMANCE vList, unlike Director's value() function, preserves the sorted state of a saved list when it is retrieved, eliminating the time hit to do a resort upon restoration of the list, and therefore greatly speeding up any subsequent search of the list. FLEXIBILITY vList Xtra was designed to store lists, but you can use a vList file or vList member to store any supported data type without first writing it to a list. member("vlist member").content = member(5).media put member("vlist member").content -- (media eefe4e0) member("vlist member").content = "cat" put member("vlist member").content -- "cat" member("vlist member").content = [1,2,3] put member("vlist member").content -- [1,2,3] MORE DATA TYPES vList can read and write the following data types, which are not supported by the Lingo value command: member.media member.picture image (Director 8 and above) transform (Director 8.5 and above) void The media property of a member saved by vList is completely independent of the cast member it came from. You can use this feature to extract members from one movie and recreate them in another.
Data Types Supported by vList Xtra
Lingo Type (ilk) | Example | vList Xtra | Director's Value(listString) Method
#void | void | yes | no
#integer | 4 the maxinteger | yes | yes
#symbol | #identif | yes | yes
#string | "some text" | yes (with conversion of high-ASCII characters using Director's fontmap.txt character mapping) | yes (but with no high-ASCII character mapping between Mac and PC)
#object | var = new (script "parent script") | yes | no
#image | image(X, Y, depth) member ().image (the stage).image | yes | no
#picture | member ().picture | yes | no
#float | 3.1415926536 | yes (full precision, uses new native compact float format when running under Director 8.5) | yes (to the current Lingo float precision)
#list | [1,2,3] | yes | yes
#point | point (1,2) point (1.5, 2.5) | yes, both in integer and float coordinates | yes (float coordinates in the current Lingo float precision)
#rect | rect (1,2,3,4) rect (1.5, 2.5, 5.5, 6.5) | yes, both in integer and float coordinates | yes (float coordinates in the current Lingo float precision)
#propList | [#symb: 2] | yes | yes
#member | member (1,1) | yes | yes
#castLib | castlib 1 | yes | yes
#script | member ().script | no | no
#instance | new (script "parent") | yes | no
#xtra | xtra "vList" | no | no
#sprite | sprite 1 | yes | yes
#soundsprite | sound (1) | yes yes | yes (Director 7) no (Director 8)
#color | rgb (255, 0, 200) | yes | yes
#date | date(2007,01,01) the systemdate | yes, with limitation | yes
#media | member ().media | yes | no
#window | window movie.dir | no | yes
#vector | vector (1,2,3) | yes (to the full precision) | yes (up to the current Lingo float precision)
#transform | transform() | yes (to the full precision) | no
SIZE The list size vList can work with is limited only by available memory. Director's value() function is limited to 32,767 entries for a linear list and 16,383 for a property list BINARY FORMAT vList saves lists and other data types in their native binary format rather than converting them to and from text. Since no conversion of the data is necessary, vList is up to 20 times faster than Director's value() method, allows lists to be retrieved in a sorted state, and preserves floating point numbers to their full precision. In addition to saving and retrieving lists and other data types, vList offers several new commands for managing lists. * aList = concatenate (list1, list2, .., listN) * sortedState = sortP (aList) * unSort (aList) * setPropAt (aPropList, index, property) * insertAt (aList, index, value) * insertPropAt (aPropList, index, property, value) * changeProp(aPropList, oldProp, newProp, deepMode) * appendProp (aPropList, property, value)