vList Xtra 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)