|
|
JavaScript API 对象本节概要介绍 Flash JavaScript API 中的可用对象,以及如何开始使用它们。使用 JavaScript API 时,所有标准 JavaScript 命令均可用。 下表简要说明 JavaScript API 中的每个对象。这些对象按字母顺序列出。
Flash 文档对象模型用于 Flash JavaScript API 的 Flash 文档对象模型 (DOM) 包含一组顶级函数(请参阅顶级函数和方法)及两个顶级对象(FLfile 对象和 flash 对象 (fl))。由于每个对象在 Flash 创作环境打开时总是存在,因此在脚本中肯定可用。有关详细信息,请参阅 FLfile 对象和 flash 对象 (fl)。 在引用 flash 对象时,可以使用 flash 或 fl。例如,若要关闭所有打开的 FLA 文件,可以使用以下任一语句: flash.closeAll(); fl.closeAll(); flash 对象包含以下子对象:
Document 对象fl.documents 属性是顶级 flash 对象的一个重要属性。此属性包含一个由 Document 对象组成的数组,每个对象代表创作环境中当前打开的一个 FLA 文件。每个 Document 对象的属性代表一个 FLA 文件可包含的大多数元素。因此,DOM 主要由 Document 对象的子对象和属性组成。有关详细信息,请参阅 Document 对象。 例如,若要引用首个打开的文档,请使用语句 flash.documents[0] 或 fl.documents[0]。首个文档是在创作环境中的当前会话期间打开的首个 Flash 文档。在关闭首个打开的文档后,其它已打开文档的索引将递减。 若要查找特定文档的索引,请使用 flash.findDocumentIndex(nameOfDocument) 或 fl.findDocumentIndex(nameOfDocument)。请参阅 fl.findDocumentIndex()。 若要访问当前具有焦点的文档,请使用语句 flash.getDocumentDOM() 或 fl.getDocumentDOM()。请参阅 fl.getDocumentDOM()。后一语句是本文档的示例中最常用的语法。 若要查找 fl.documents 数组中的特定文档,请遍历此数组并测试每个文档的 document.name 属性。请参阅 fl.documents 和 document.name。 DOM 中未在上表中列出的所有对象(请参阅 Flash 文档对象模型)均从 Document 对象访问。例如,若要访问一个文档的库,请使用 document.library 属性,该属性可检索一个库对象: fl.getDocumentDOM().library 若要访问库中项目的数组,请使用 library.items 属性;该数组中的每个元素均是一个 Item 对象: fl.getDocumentDOM().library.items 若要访问库中的特定项目,请指定 library.items 数组中的一个成员: fl.getDocumentDOM().library.items[0] 也就是说,library 对象是 Document 对象的子级,而 Item 对象是 library 对象的子级。有关详细信息,请参阅 document.library、library 对象、library.itemslibrary.items 和 Item 对象。 指定动作目标除非以其它方式指定,否则方法将影响当前焦点或选择范围。例如,由于未指定特定的对象,下面的脚本会将当前选择范围扩大一倍: fl.getDocumentDOM().scaleSelection(2, 2); 在某些情况下,您可能希望某一动作专门针对 Flash 文档中当前选定的项。为此,请使用 document.selection 属性包含的数组(请参阅 document.selection)。数组中的首个元素表示当前选定的项,如下面的示例所示: var accDescription = fl.getDocumentDOM().selection[0].description; 以下脚本将舞台上存储在元素数组中的首个元素(而不是当前选定范围)的大小扩大一倍: var element = fl.getDocumentDOM().getTimeline().layers[0].frames[0].elements[0];
if (element) {
element.width = element.width*2;
element.height = element.height*2;
}
此外,您还可以执行一些操作(如遍历舞台上的所有元素),并按指定的数量增加宽度和高度,如下面的示例所示: var elementArray =
fl.getDocumentDOM().getTimeline().layers[0].frames[0].elements;
for (var i=0; i < elementArray.length; i++) {
var offset = 10;
elementArray[i].width += offset;
elementArray[i].height += offset;
}
DOM 结构摘要以下列表以大纲形式显示了 DOM 结构。每行开头的数字表示对象级别。例如,以“03”开头的对象是上一级“02”对象的子级,而后者又是上一级“01”对象的子级。 有些情况下,某对象可以通过指定其父对象的属性提供。例如,document.timelines 属性包含由 Timeline 对象组成的数组。下面的大纲说明了这些属性。 有些对象是其它对象的子类,而不是其它对象的子对象。除了父对象(超类)的方法和属性之外,作为其它对象子类的对象还有自己的方法和/或属性。子类与其超类在层次结构中共享同一级别。例如,Item 对象是 BitmapItem 对象的超类。下面的大纲阐释了这些关系: 01 Top-Level Functions and Methods 01 FLfile object 01 flash object (fl) 02 compilerErrors object 02 componentsPanel object 02 Document object (fl.documents array) 03 Filter object 03 Matrix object 03 Fill object 03 Stroke object 03 library object 04 Item object (library.items array) 04 BitmapItem object(subclass of Item object) 04 folderItem object (subclass of Item object) 04 fontItem object (subclass of Item object) 04 SoundItem object (subclass of Item object) 04 SymbolItem object (subclass of Item object) 04 VideoItem object (subclass of Item object) 03 Timeline object (document.timelines array) 04 Layer object (timeline.layers array) 05 Frame object (layer.frames array) 06 Element object (frame.elements array) 07 Matrix object (element.matrix) 06 Instance object (abstract class, subclass of Element object) 06 BitmapInstance object (subclass of Instance object) 06 CompiledClipInstance object (subclass of Instance object) 06 ComponentInstance object (subclass of SymbolInstance object) 07 Parameter object (componentInstance.parameters array) 06 SymbolInstance object (subclass of Instance object) 06 Text object (subclass of Element object) 07 TextRun object (text.textRuns array) 08 TextAttrs object (textRun.textAttrs array) 06 Shape object (subclass of Element object) 07 Oval object 07 Rectangle object 07 Contour object (shape.contours array) 08 HalfEdge object 09 Vertex object 09 Edge object 07 Edge object (shape.edges array) 08 HalfEdge object 09 Vertex object 09 Edge object 07 Vertex object(shape.vertices array) 08 HalfEdge object 09 Vertex object 09 Edge object 03 ScreenOutline object 04 Screen object (screenOutline.screens array) 05 Parameter object (screen.parameters array) 02 drawingLayer object 03 Path object 04 Contour object 02 Math object 02 outputPanel object 02 presetPanel object 03 presetItem object(presetPanel.items array) 02 swfPanel object 02 Tools object (fl.tools array) 03 ToolObj object (tools.toolObjs array) 02 XMLUI object |