Enhancements

state

CPU usage optimization

Soon as initialized, the Xtra will automatically reduce the movie's idle CPU usage, without affecting performance

 

Input events

Unicode key values, mousewheel events, middle mousebutton events etc.

 

Drag & Drop and Clipboard Functions

Support for dragging and dropping various types of objects, well as copy/paste to/from clipboard.

 

 

 

 

Base Objects

 

xErr

An object returned to the command line, containing the error code of the error that occurred. The error code, well as the string representation of the error is accessible through the xErr object

 

xCallback

An object in which a handler and an object (or sprite) is stored. xCallbacks are attached to objects that work asynchronously (like e.g. sockets). Soon as an asynchronous event occurs, the parent object calls the handler contained in the callback.

 

xString

String object, backwards compatible with Director's string. xStrings can be either ANSI or UNICODE (utf16). ANSI and Unicode xStrings can be safely mixed at will - the Xtra performs all conversions automatically.
xStrings also support a large set of functions, like load from / save to file, copy from / paste to clipboard, convert to specific ansi/unicode format, split to list, find, replace...
Unlike Director's strings, xStrings have no dot level limit. E.g. you can safely use myString.char[1..3].char[2].char[1]..
Binary access / modification of string data is also supported (character, digit or byte level)

 

xList

Backwards compatible to Director's List/PropList object, but faster, and supporting more functions (like join, case sensitive searches, and more).
The xList object also supports xStrings - xStrings stored in Director's lists are treated by Director as objects, and not as strings.

 

xDate

An alternative to Director's date object. Unlike Director's data object, xDates use UTC date/time, therefore xDates are location independent. Several date/time conversions and calculations supported.

 

xImage

A replacement to Director's image object. Supports binary image data access, well as conversion to various graphics formats in memory or file.

 

xText

Rich text object. Unlike Director's text/field members, text formatting functions (e.g. color, style, retrieving rtf data) can be performed on an xText object directly.

 

xTextRange

A selected range of text in an xText object. Formatting, copying/pasting are performed on xTextRange objects, resulting clearer and faster code. xTextRanges are automatically updated when the contents of an xText object change

 

 

 

 

System Functions

 

xOS

Operating system functions

 

xSSO

Structured Storage Object. This object can be used to create/delete/read/write/copy/rename files and folders. Supports network paths and virtual path names (e.g. 'my computer' or 'control panel'), folder monitoring (notifications when folder contents change), creating/modifying structured files (files containing files and folders), shell functions, attributes access/change etc.

 

xService

The Xtra contains code that allows a Director projector to be used as an NT Service. Through this object, you can setup the current projector to run as an NT Service, well as list, add, remove or modify NT services.

 

xRegKey

Registry functions. Easily browse the registry, modify/add/remove keys, perform fast searches, copy/paste/import/export and more

 

xWindow

Control a Director's or any OS window. Resize, move, reposition, send messages, close, change opacity/chromakey and more.

 

xMenu

Create and control OS popup menus. Add OS menu bars to the stage and/or MIAWs.

 

xDataObj

A wrapper for Window's DataObject. DataObjects are used to perform copy/paste/drag/drop/various ole functions. Through the xDataObj you can create your own, or access the contents of OS's DataObjects - e.g. create a DataObject that contains both text and graphics and set it as the clipboard's contents.

 

 

 

 

Extensions

 

xUserLib

Create your own DLLs with the simple c++ userlib skeleton project provided. Access your c++ functions directly from within an xUserLib object. The DLLs can be embedded in a director movie and executed in memory, without a temp file.

 

xCom

ActiveX / visual basic object access.

 

 

 

 

Network Functions

 

xNetAddr

An address that can hold a network address, on which various actions can be performed synchronously or asynchronously: Ping, Traceroute, Lookup, Wakeup, Shutdown (NT Only), and more. Supports both ipv4 and ipv6 addresses

 

xDNS

DNS functions. DNS / reverse DNS Lookups of various DNS records (e.g. A, AAAA,  CNAME, MX, PTR...)

 

 

 

 

Network Communication

 

xCacheItem

An object that can be used as a data source for sending a network message to multiple recipients. The Xtra will release the object automatically soon as all send operations are finished.

 

xSendQue

An object attached to stream sockets (e.g. tcp sockets), in which outgoing data -xStrings, xCacheItems or xSSOs (files)- are queued.

 

xClientGroup

An object to which client socket objects (client sockets, tcp clients) can be added. The xClientGroup can be used to send messages to all group members. xClientGroups are automatically updated as required (e.g. upon user disconnection) and send groupjoin/leave events.

 

xSocket

A wrapper for a Window's socket object. Supports ipv4, ipv6, raw, stream, datagram, well as any other socket type. Supports: broadcasting and multicasting, socket tuning (opts), socket info, speed control and monitor, automatically handles clients, manual/auto send/receive modes...

 

xTcpServer

An object compatible with a listening xSocket, far as commands and functions are concerned, but using Overlapped IO and completion ports internally. You can use this object to create a highly scalable server - a server that can hold thousands of connections with very low cpu/resource usage.

 

xTcpClient

A socket object created for each xTcpServer connection.

 

 

 

 

Web Server

 

xHttpServer

A Web server object base. Handles all Http IO and headers translations, supports ipv4,ipv6, SSL. A sample movie of a complete web server with lingo server side scripts will be provided.

 

xHttpSession

 

 

xHttpRequest

 

 

xHttpResponce

 

 

 

 

 

Protocols

 

xMUP

Shockwave MultiUser Protocol builder/parser. No need to use this class directly, since functions like e.g. mupSend and mupRead have been added to the socket objects.

 

 

 

 

Members

 

xImageMem

Similar to director's bitmap member, but built around an xImage object.

 

xTextMem

A Unicode RTF text member. Supports image embedding, drag/drop, copy/paste and many other functions. Build around an xText object.

 

vTextMem

Same as xTextMem, but a new xText object is created for each sprite that uses a vTextmem. In practice, this means that from a single vTextMem multiple sprites can be created. And each sprite can contain its own text, formatting, size, color etc.