Scripting Xtra是外部函数的集合。与U32不同,Scripting Xtra提供的函数无须手工加载,只要将Xtra文件复制到Xtras文件夹内,重新启动Authorware,就可以从Functions窗口内看到其中提供的所有函数,如下图所示。Scripting Xtra的这一特征也使其明显区别于Sprite Xtra,后者将自身增加到Insert菜单组中。

FileIO就是一个非常有用的Scripting Xtra,其中提供的函数基本上能够满足文件操作的需要。生产外部函数的厂商有时会同时提供函数的U32版本与X32版本,例如大名鼎鼎的BudApi,这些X32都属于Scripting Xtra。
Scripting Xtra提供的外部函数在使用方面与系统函数、U32函数稍有不同,它们可以分为:
一、全局函数
全局函数在使用上与系统函数完全相同,只需将它们复制到运算窗口中就行了。例如FileIO提供的getOSDirectory()函数,直接运行它就可以返回Windows系统的安装目录,而在从前,我通常是使用GetLine(RecordsLocation, 1, 2, "\\")来达到相同的目的。NewObject也是一个全局函数,大多数Scripting Xtra都提供有此函数。
由于上述特点,在使用全局函数时要注意,发行程序时不要忘记带上相应的X32文件。
二、由对象执行的函数(方法)
显然这类函数(方法)只属于特定的对象。对象有父对象和子对象之分,父对象由Scripting Xtra在加载时自动产生,并且只能有一个。
子对象由全局函数NewObject来创建。该函数以Scripting Xtra的名称为参数,例如Myfile:=NewObject("fileio")就创建了一个FileIO的子对象Myfile。
至于某个方法由哪个对象来执行,看看Functions窗口中的说明就可以了,如下图所示,

CallParentObject("fileio", "version")表示由唯一的父对象来执行其方法version,返回当前FileIO Xtra的版本;CallObject(MyFile, "openFile", getOSDirectory()^"\\A5w.ini", 1)表示由对象Myfile来执行方法openFile,以只读方式被打开的文件A5w.ini从此与对象MyFile建立关系,可以通过该对象对文件进行操作,例如通过子对象MyFile的getLength方法(具体写做:CallObject(MyFile, "getLength"))返回A5w.ini的文件长度。
CallParentObject与CallObject都是Authorware提供的系统函数。按照Macromedia的说法,Scripting Xtra中的父对象与子对象,是面向对象程序设计方法(OOP)在Authorware中的实现。
本文禁止任何形式的转载、复制。