JavaScript API 对象



本节概要介绍 Flash JavaScript API 中的可用对象,以及如何开始使用它们。使用 JavaScript API 时,所有标准 JavaScript 命令均可用。

下表简要说明 JavaScript API 中的每个对象。这些对象按字母顺序列出。

对象

描述

actionsPanel 对象

actionsPanel 对象表示当前显示的“动作”面板。

BitmapInstance 对象

BitmapInstance 对象是 Instance 对象的子类,它表示帧中的一个位图。

BitmapItem 对象

BitmapItem 对象是指文档库中的位图。BitmapItem 对象是 Item 对象的子类。

CompiledClipInstance 对象

CompiledClipInstance 对象是 Instance 对象的子类。

compilerErrors 对象

compilerErrors 对象表示“编译器错误”面板。它是 flash 对象的属性 (fl.compilerErrors)。

ComponentInstance 对象

ComponentInstance 对象是 SymbolInstance 对象的子类,表示帧中的一个组件。

componentsPanel 对象

componentsPanel 对象表示“组件”面板,它是 flash 对象 (fl.componentsPanel) 的属性。

Contour 对象

Contour 对象表示由形状边界上的半边缘组成的封闭路径。

Document 对象

Document 对象表示舞台。

drawingLayer 对象

drawingLayer 对象可以从 JavaScript 作为 flash 对象的子对象访问。

Edge 对象

Edge 对象表示舞台上一个形状的边缘。

Element 对象

出现在舞台上的所有对象都是 Element 类型。

Fill 对象

Fill 对象包含“工具”面板或某一选定形状的填充颜色设置的所有属性。

Filter 对象

Filter 对象包含有所有滤镜的全部属性。

flash 对象 (fl)

flash 对象表示 Flash 应用程序。

FLfile 对象

FLfile 对象允许您编写可对本地文件系统中的文件和文件夹进行访问、修改和删除的 Flash 扩展。

folderItem 对象

folderItem 对象是 Item 对象的子类。

fontItem 对象

fontItem 对象是 Item 对象的子类。

Frame 对象

Frame 对象表示图层中的帧。

HalfEdge 对象

Shape 对象的边缘的有向侧。

Instance 对象

Instance 对象是 Element 对象的子类。

Item 对象

Item 对象是一种抽象基类。

Layer 对象

Layer 对象表示时间轴中的图层。

library 对象

library 对象表示“库”面板。

Math 对象

Math 对象可用作 flash 对象 (fl.Math) 的只读属性。

Matrix 对象

Matrix 对象表示一个变形矩阵。

outputPanel 对象

outputPanel 对象表示“输出”面板,它用来显示语法错误等疑难解答信息。它是 flash 对象 (fl.outputPanel) 的属性。

Oval 对象

Oval 对象是使用椭圆工具绘制的形状。若要确定一个项目是否为 Oval 对象,请使用 shape.isOvalObject

Parameter 对象

Parameter 对象类型是从 screen.parameters 数组(对应于 Flash 创作工具中的屏幕“属性”检查器)或由 componentInstance.parameters 数组(对应于创作工具中的组件“属性”检查器)访问的。

Path 对象

Path 对象定义线段(直线、曲线或两者)的序列,通常在创建可扩展工具时使用。

presetItem 对象

presetItem 对象表示“动画预设”面板中的项目(预设或文件夹)。

presetPanel 对象

presetPanel 对象表示“动画预设”面板(“窗口”>“动画预设”)。它是 flash 对象 (fl.presetPanel) 的属性。

Rectangle 对象

Rectangle 对象是使用“矩形”工具绘制的形状。若要确定一个项目是否为 Rectangle 对象,请使用 shape.isRectangleObject

Screen 对象

Screen 对象表示幻灯片或表单文档中的单个屏幕。

ScreenOutline 对象

ScreenOutline 对象表示幻灯片或表单文档中的一组屏幕。

Shape 对象

Shape 对象是 Element 对象的子类。当在舞台上操作或创建几何形状时,Shape 对象提供的控制比绘图 API 提供的控制更精确。

SoundItem 对象

SoundItem 对象是 Item 对象的子类。它表示一个用于创建声音的库项目。

Stroke 对象

Stroke 对象包含笔触的所有设置(包括自定义设置)。

swfPanel 对象

swfPanel 对象表示窗口 SWF 面板。窗口 SWF 面板是一些 SWF 文件,它们实现的应用程序可以在 Flash 创作环境中运行。swfPanel 对象的数组为 flash 对象 (fl.swfPanels) 的属性。

SymbolInstance 对象

SymbolInstance 对象是 Instance 对象的子类,它表示帧中的一个元件。

SymbolItem 对象

SymbolItem 对象是 Item 对象的子类。

Text 对象

Text 对象表示文档中单独的文本项。

TextAttrs 对象

TextAttrs 对象包含能应用于部分选定的文本的所有属性。此对象为 Text 对象的一个子类。

TextRun 对象

TextRun 对象表示一串字符,其属性与 TextAttrs 对象中的所有属性相匹配。

Timeline 对象

Timeline 对象表示 Flash 时间轴,可通过 fl.getDocumentDOM().getTimeline() 访问当前文档的时间轴。

ToolObj 对象

一个 ToolObj 对象表示“工具”面板中的单个工具。

Tools 对象

可从 Flash 对象 (fl.tools) 访问 Tools 对象。

Vertex 对象

Vertex 对象是形状数据结构中保存坐标数据的部分。

VideoItem 对象

VideoItem 对象是 Item 对象的子类。

XMLUI 对象

XMLUI 对象能够获取和设置 XMLUI 对话框的属性,并能接受或取消其中的某个功能。

Flash 文档对象模型

用于 Flash JavaScript API 的 Flash 文档对象模型 (DOM) 包含一组顶级函数(请参阅顶级函数和方法)及两个顶级对象(FLfile 对象和 flash 对象 (fl))。由于每个对象在 Flash 创作环境打开时总是存在,因此在脚本中肯定可用。有关详细信息,请参阅 FLfile 对象flash 对象 (fl)

在引用 flash 对象时,可以使用 flashfl。例如,若要关闭所有打开的 FLA 文件,可以使用以下任一语句:

flash.closeAll(); 
fl.closeAll();

flash 对象包含以下子对象

object

访问方法

actionsPanel 对象

使用 fl.actionsPanel 访问 actionsPanel 对象。该对象与 Flash 创作环境中的“动作”面板相对应。

compilerErrors 对象

使用 fl.compilerErrors 访问 compilerErrors 对象。该对象与 Flash 创作环境中的“编译器错误”面板相对应。

componentsPanel 对象

使用 fl.componentsPanel 访问 componentsPanel 对象。该对象与 Flash 创作环境中的“组件”面板相对应。

Document 对象

使用 fl.documents 检索由所有打开文档组成的数组;使用 fl.documents[index] 访问特定文档;使用 fl.getDocumentDOM() 访问当前文档(具有焦点的文档)。

drawingLayer 对象

使用 fl.drawingLayer 访问 drawingLayer 对象。

Math 对象

使用 fl.Math 访问 Math 对象。

outputPanel 对象

使用 fl.outputPanel 访问 outputPanel 对象。该对象与 Flash 创作环境中的“输出”面板相对应。

presetPanel 对象

使用 fl.presetPanel 访问 presetPanel 对象。此对象对应于“动画预设”面板(“窗口”>“动画预设”)。

swfPanel 对象

使用 fl.swfPanels 访问由 swfPanel 对象组成的数组。这些对象对应于“窗口 SWF”面板。

Tools 对象

使用 fl.tools 访问由 Tools 对象组成的数组。

XMLUI 对象

使用 fl.xmlui 访问 XML 用户界面 (XMLUI) 对象。XMLUI 对象能获取和设置 XMLUI 对话框的属性。

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.documentsdocument.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.librarylibrary 对象library.itemslibrary.itemsItem 对象

指定动作目标

除非以其它方式指定,否则方法将影响当前焦点或选择范围。例如,由于未指定特定的对象,下面的脚本会将当前选择范围扩大一倍:

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