文档帮助

术语、图标和标签

许多类在使用配置对象创建(实例化)类时具有快捷名称。快捷名称称为 alias(如果类扩展 Ext.Component,则称为 xtype)。对于适用的类,别名/xtype 会列在类名称旁边以供快速参考。

访问级别

框架类或其成员可以指定为 privateprotected。否则,类/成员为 publicPublicprotectedprivate 是访问描述符,用于传达如何以及何时应使用类或类成员。

成员类型

成员语法

下面是一个示例类成员,我们可以对其进行剖析以显示类成员的语法(在这种情况下,从 Ext.button.Button 类查看的 lookupComponent 方法)。

我们来看看成员行中的每一部分

  • 展开/折叠 - 在成员行的左侧是一个控件,用于展开和折叠每个成员行以显示/隐藏成员详细信息。
  • 成员名称 - 类成员的名称(此示例中为 lookupComponent
  • 方法参数 - 方法使用的任何必需或可选参数(或传递给事件处理程序方法)将在括号中列在方法名称旁边(此示例中为 ( item )
  • 返回类型 - 方法或属性返回的类实例或 JavaScript 对象(此示例中为 Ext.Component)。对于不返回 undefined 以外任何内容的方法,可以省略此项,或者可以显示多个可能的值,这些值用正斜杠 / 分隔,表示返回的内容可能取决于方法调用的结果(即,如果 get 方法调用成功,则方法可能会返回一个组件,如果失败则返回 false,这将显示为 Ext.Component/Boolean)。
  • 标志 - 适用于成员的任何标志将显示在旁边(此示例中为 PROTECTED - 请参见下面的标志部分)
  • 成员来源 - 在成员行的右侧是最初描述成员的类(此示例中为 Ext.container.Container)。如果成员源自当前类,则源类将显示为蓝色链接;如果成员是从祖先或混合类继承的,则显示为灰色。
  • 成员源 - 在成员来源类的右侧下方是一个链接,用于查看成员的源(示例中为 查看源
  • 参数列表 - 类方法的每个参数都将使用括号中上面找到的相同名称、预期的类或对象类型以及参数的描述(示例中为 item : Object)进行列出。
  • 返回 - 如果类返回的值不为 undefined,则“返回”部分将记录返回的类或对象类型以及描述(示例中为 Ext.Component
  • 示例中未显示) - 一些成员将在成员描述之后显示产品首次引入成员的版本(即 自 3.4.0 起可用 - 示例中未显示
  • 默认示例中未显示) - 配置通常显示要应用于类实例的默认配置值(如果未覆盖)(即 默认为:false

成员标志

API 文档使用许多标志来进一步传达类成员的功能和意图。标签可以用文本标签、缩写或图标表示。

  • 必需 - 实例化类时的必需配置
  • 可绑定 - 配置具有一个 setter,该 setter 允许通过 ViewModel 绑定设置此配置
  • 只读 - 可以读取该属性,但不能用于在运行时配置/重新配置类实例
  • 单例 - 单例类在定义后立即实例化,并且可能无法手动实例化
  • 静态 - 静态方法或属性是属于类本身的方法或属性,而不是类的实例
  • 可链接 - 指在调用时返回类实例的方法。
    这支持链接方法调用,例如:classInstance.method1().method2().etc();
  • 已弃用 - 计划在未来框架版本中删除的类或成员,并在当前版本中提供以实现向后兼容性。
    已弃用的类和成员将包含一条消息,指导您转到首选的类/方法。
  • 已删除 - 仅在文档中作为参考存在的已删除类或成员,供在框架版本之间升级的用户使用
  • 模板 - 在基类中定义的方法,旨在由子类覆盖
  • 抽象 - 类或成员可以定义为抽象。抽象类和成员建立类结构并提供有限的代码(如果有的话)。类特定代码将通过子类中的覆盖来提供。
  • 可预防 - 如果从事件处理程序返回 false,则标记为可预防的事件将不会触发

类图标

- 表示框架类

- 单例框架类。*有关详细信息,请参见单例标志

- 组件类型框架类(Ext JS 框架中扩展 Ext.Component 的任何类)

- 表示类、成员或指南在当前查看的版本中是新的

成员图标

- 表示类型为 config 的类成员

- 表示类型为 property 的类成员

- 表示类型为 method 的类成员

- 表示类型为 event 的类成员

- 表示类型为 theme variable 的类成员

- 表示类型为 theme mixin 的类成员

- 表示类、成员或指南在当前查看的版本中是新的

类成员快速导航菜单

在 API 文档页面上类名称的正下方是与当前类拥有的成员类型相对应的按钮行。每个按钮按类型显示成员数(此计数在应用筛选器时更新)。单击按钮将导航到该成员部分。将鼠标悬停在成员类型按钮上将显示一个弹出菜单,其中包含该类型的所有成员,以便快速导航。

获取器和设置器方法

与类配置选项相关的获取器和设置器方法将显示在方法部分以及 API 文档和成员类型菜单的配置部分中,它们与之一起工作的配置就在其正下方。获取器和设置器方法文档将位于配置行中,以便于参考。

历史记录栏

您的页面历史记录保存在本地存储中,并显示在顶部标题栏正下方(使用可用空间)。默认情况下,仅显示与您当前正在查看的产品/版本匹配的搜索结果。您可以通过单击历史记录栏右侧的 按钮并选择“全部”单选选项来扩展显示内容。这将在历史记录栏中显示所有产品/版本的所有近期页面。

在历史记录配置菜单中,您还将看到最近访问的页面列表。结果按“当前产品/版本”和“全部”单选选项进行筛选。单击 按钮将清除历史记录栏以及保存在本地存储中的历史记录。

如果在历史记录配置菜单中选择了“全部”,则将启用“在历史记录栏中显示产品详细信息”复选框选项。选中后,每个历史记录页面的产品/版本将与历史记录栏中的页面名称一起显示。将光标悬停在历史记录栏中的页面名称上也将以工具提示的形式显示产品/版本。

搜索和筛选器

可以使用页面顶部的搜索字段搜索 API 文档和指南。

在 API 文档页面上,还有一个筛选器输入字段,它使用筛选器字符串筛选成员行。除了按字符串筛选外,您还可以按访问级别、继承和只读筛选类成员。这是使用页面顶部的复选框完成的。

API 类导航树底部的复选框筛选类列表以包括或排除私有类。

单击一个空的搜索字段将显示您最近的 10 次搜索,以便快速导航。

API 文档类元数据

每个 API 文档页面(除了 JavaScript 原语页面)都有一个与该类相关的元数据的菜单视图。此元数据视图将具有以下一项或多项

  • 备用名称 - 一个或多个其他类名同义词(在 Ext JS 6.0.0 中,Ext.button.Button 类有一个备用类名 Ext.Button)。备用类名通常用于向后兼容。
  • 层次结构 - 层次结构视图列出了当前类的继承链,从其祖先类一直到根基类。
  • 混合 - 混合到当前类中的类列表
  • 继承的混合 - 混合到当前类祖先中的类列表
  • 需要 - 实例化类所需的已定义的所有类
  • 使用 - 在其生命周期的某个时刻类可能使用的类列表,但对于最初实例化类来说并非必需
  • 子类 - 扩展当前类的类

展开和折叠示例和类成员

默认情况下,可运行示例(Fiddles)在页面上展开。您可以使用代码块左上角的箭头单独折叠和展开示例代码块。您还可以使用页面右上角的切换按钮切换所有示例的折叠状态。切换所有状态将在页面加载之间记住。

默认情况下,类成员在页面中折叠。您可以使用成员行左侧的箭头图标展开和折叠成员,或使用右上角的展开/折叠所有切换按钮全局展开/折叠。

桌面 -vs- 移动视图

在较窄的屏幕或浏览器上查看文档将导致针对较小尺寸进行优化的视图。桌面和“移动”视图之间的主要区别是

  • 全局导航将位于左侧菜单中,可通过汉堡菜单图标访问。该菜单包含以下内容(在大多数页面上)
    • 当前产品名称(作为指向产品登录页面的链接)
    • 用于导航回文档主页的 Sencha 图标
    • 产品菜单下拉按钮
    • API 文档和指南的导航树选项卡
  • 当前上下文导航和工具位于右侧,可通过齿轮图标访问。上下文菜单包含以下内容
    • 全局搜索输入字段
    • API 文档)带有成员筛选器、“展开/折叠所有示例”按钮、“展开/折叠所有成员行”按钮、访问级别筛选器复选框以及每个成员计数的“筛选器”选项卡
    • API 文档)包含与当前类相关的元数据菜单的“相关类”选项卡
    • 指南)指南的目录

查看类源

可以通过单击 API 文档页面顶部的类名来查看类源。可以通过单击成员行右侧的“查看源”链接来查看类成员的源。

Sencha Touch 2.4


顶部

了解和使用 Sencha Touch 中的事件

Sencha Touch 的组件和类在其生命周期的各个点触发广泛的事件。事件允许您的代码对周围的变化做出反应,并且是 Sencha Touch 中的一个关键概念。

什么是事件?

每当您的某个类发生一些有趣的事情时,就会触发事件。例如,当任何组件呈现到屏幕上时,其 painted 事件被触发。我们可以通过配置一个简单的 listeners 配置来监听该事件

当您单击上面的“实时预览”按钮时,您将看到一个呈现到屏幕上的面板,然后是定义的警报消息。类触发的所有事件都会在其 API 页面中列出 - 例如,在编写 Ext.Panel 时有 28 个事件

监听事件

虽然 painted 事件本身在某些情况下很有用,但还有其他事件更有可能被您使用。例如,按钮 在每次被点击时都会触发 tap 事件

您可以添加任意多个事件监听器。在以下示例中,我们将通过在 tap 监听器中调用 this.hide() 来混淆用户以隐藏按钮,仅在 1 秒后再次显示它。当调用 this.hide() 时,按钮被隐藏,hide 事件 被触发。hide 事件反过来触发我们的 hide 监听器,它在再次显示按钮之前等待一秒钟

每次触发事件时都会调用事件侦听器,因此你可以继续隐藏和显示按钮,直到永远。

配置驱动的事件

大多数类在运行时都是可重新配置的,这意味着你可以随时更改其配置,例如高度、宽度或内容,并且组件将在屏幕上正确更新自身。其中许多配置更改会触发事件的触发 - 例如,按钮的 24 个组件事件中有 14 个具有以下名称:widthchangehiddenchangecenteredchange

在以下示例中,tap 处理程序调用 this.setWidth() 为我们的按钮设置随机宽度。widthchange 侦听器会立即收到有关更改的通知,以及新旧宽度值

以“change”结尾的每个事件都是由于已更改的配置选项而触发的。请注意,尽管侦听这些事件就像侦听任何其他事件一样,但了解该约定很有用。

稍后添加侦听器

以前的示例涉及在实例化类时传递侦听器。但是,如果我们已经有一个实例,我们仍然可以使用 on 函数稍后添加侦听器

通过这种方式,你可以在任何时候添加新的侦听器。你还可以结合这些方法,并且如果需要,甚至可以多次侦听同一事件,如下例所示

在这种情况下,将调用两个已定义的事件侦听器函数,保留添加它们的顺序。

最后,你可以使用 .on 方法指定多个侦听器,类似于使用侦听器配置。以下代码重新审视了设置按钮随机宽度的上一个示例

删除侦听器

就像我们可以在任何时候添加侦听器一样,我们也可以删除它们,这次使用 un。为了删除侦听器,我们需要引用其函数。在前面的示例中,我们刚刚将一个函数传递到侦听器对象或 .on 调用中,这次我们提前创建了该函数并将其链接到名为 doSomething 的变量中。

由于最初我们将新的 doSomething 函数传递到侦听器对象中,因此一开始代码像以前一样工作。由于我们最终添加了一个 Ext.defer 函数,该函数在 3 秒后删除侦听器,因此在最初的 3 秒内单击按钮会产生警报消息,但 3 秒后侦听器将被删除,因此不会发生任何事情

在以下示例中,我们使用与前面代码示例中类似的按钮,但这次我们还添加了一个切换按钮,该按钮会在你切换它时添加和删除 tap 侦听器。侦听器最初被禁用,使用切换按钮启用它,然后禁用它

监听器选项

您可以将许多其他选项传递到监听器中。

范围

范围设置处理函数中this 的值。默认情况下,this 设置为触发事件的类的实例,这通常(但并非总是)是您想要的功能。此功能允许我们在本指南开头处的第二个示例中调用 this.hide() 来隐藏按钮。

在以下示例中,我们创建了一个按钮和一个面板,然后使用在面板范围内运行的处理程序侦听按钮的“tap”事件。为了做到这一点,我们需要传递一个对象而不是处理函数 - 此对象包含函数和范围

运行此示例时,this 在 tap 处理程序中的值是面板。为了查看这一点,我们已将面板的 html 配置设置为“面板 HTML”,然后在处理程序中发出 this.getHtml() 的警报。当点击按钮时,我们确实看到面板的 html 已发出警报。

单一

有时我们只想监听事件一次。事件本身可能会触发任意次数,但我们只想监听一次。以下代码说明了这种情况

缓冲

对于在短时间内触发多次的事件,我们可以通过使用缓冲配置来减少调用监听器的次数。在这种情况下,无论您单击按钮多少次,按钮的 tap 监听器每 2 秒只调用一次

触发您自己的事件

通过使用任何事件名称调用 fireEvent 来触发您自己的事件。在以下示例中,我们触发一个名为 myEvent 的事件,该事件传递两个参数 - 按钮本身和 1 到 100 之间的随机数

我们再次使用 Ext.defer 来延迟触发自定义事件的函数,这次延迟 2 秒。触发事件时,myEvent 监听器会接收该事件并显示我们传递的参数。

结论

事件是 Sencha Touch 的关键部分,可让您的应用了解系统中的更改。如果您不熟悉 Sencha Touch,我们建议阅读以下指南,以更好地了解一切如何运作

Sencha Touch 2.4