共计 1765 个字符,预计需要花费 5 分钟才能阅读完成。
实例脚本接口
脚本接口表示对象类型的单个实例(由 IObjectClass 表示)
布局中显示的实例具有 IWorldInstance 接口,但它派生自 IInstance,因此这些方法和属性可用于任何类型的实例。
获得 IInstance
实例通常通过 IObjectClass 方法访问,例如 runtime.objects.Sprite.getFirstInstance()
将返回 Sprite 对象类型的第一个实例。
实例事件
可以使用 addEventListener
方法在任何实例上侦听以下事件。有关标准事件属性,请参阅实例事件。请注意,可以触发更多种类的特定于插件的事件。有关详细信息,请参阅有关每个插件脚本接口的文档。
- “销毁”:在实例被销毁时触发。在此事件之后,对实例的所有引用现在都无效,因此在此事件中应删除或清除对实例的任何剩余引用。实例销毁后访问实例会引发异常或返回无效数据。事件对象还具有一个属性,用于指示对象是否因为布局的结束而被销毁,或者由于其他原因而被销毁。
实例 API
addEventListener(type, func, capture)
:为插件的脚本接口触发的特定类型事件添加事件处理程序。removeEventListener(type, func, capture)
:为插件的脚本接口触发的特定类型事件删除事件处理程序。dispatchEvent(e)
:调度事件,触发已为事件类型添加的任何处理程序函数。您可以使用创建可调度的事件对象(例如new C3.Event("click", true)
),并将与事件相关的任何额外属性添加到该对象。
运行
对 IRuntime 接口的引用。(这在对实例进行子类化时特别有用,因为在自定义类的方法中,您始终可以使用 this.runtime
来引用运行时。)
对象类型
此实例的对象类型的 IObjectClass 接口。它被命名为 objectType 而不是 objectClass,因为它始终引用对象类型,而不是系列。
插件
此实例插件的 IPlugin 接口(或派生接口)。
instVars
如果对象具有任何实例变量,则可以通过此属性下的命名属性访问它们。例如,如果对象具有名为 health 的实例变量,则可以使用 instance.instVars.health
进行设置和检索。请注意,如果对象没有实例变量,则该实例将根本没有属性。在某些情况下,实例变量的名称可能不是有效的 JavaScript 标识符。在这种情况下,您可以使用字符串属性语法,例如 instance.instVars["health"]
。
行为
如果对象具有任何行为,则可以通过此属性下的命名属性访问它们。例如,如果对象具有名为 Bullet 的行为,则可以使用 instance.behaviors.Bullet
来访问该对象。每个行为都有其自己的属性和方法,可以在行为接口参考部分找到。请注意,如果对象没有行为,则该实例将根本没有属性。在某些情况下,行为的名称可能不是有效的 JavaScript 标识符。在这种情况下,您可以使用字符串属性语法,例如 instance.behaviors["8Direction"]
。
UID 接口
此实例的唯一 ID,以数字形式表示。注意,可以使用运行时方法按其 UID 查找实例。
模板名称
用于创建此实例的模板名称的只读字符串,如果未使用模板,则为空字符串。
破坏()
销毁实例,将其删除并释放与其关联的任何内存。通话后不要再拨打任何电话或访问任何属性。该实例不再有效,任何使用它的尝试都可能引发异常。
getOtherContainerInstances()
返回一个数组(或派生数),表示与此实例位于同一容器中的其他实例。这不包括调用该方法的实例。
otherContainerInstances()
循环访问(或派生)表示与此实例相同的容器中的其他实例。这不包括调用该方法的实例。
DT 型
根据对象自己的时间刻度返回增量时间。有关详细信息,请参阅增量时间和帧速率独立性。
时间表
restoreTimeScale()
:该属性设置或获取当前特定于实例的时间刻度,例如,1.0 表示正常速度,2.0 表示两倍的速度,等等。请注意,一旦设置,实例将使用自己的时间刻度而不是运行时时刻度,例如,当运行时刻度为 0 时,允许实例继续移动。然后,调用该方法会将其切换回遵循运行时时间尺度。