许多类在使用配置对象创建(实例化)类时具有快捷名称。快捷名称称为 alias
(如果类扩展 Ext.Component,则称为 xtype
)。对于适用的类,别名/xtype 会列在类名称旁边以供快速参考。
框架类或其成员可以指定为 private
或 protected
。否则,类/成员为 public
。Public
、protected
和 private
是访问描述符,用于传达如何以及何时应使用类或类成员。
Public 类和类成员可供任何其他类或应用程序代码使用,并且可以依赖于主要产品版本中的稳定性和持久性。Public 类和成员可以通过子类安全地进行扩展。
Protected 类成员是稳定的 public
成员,旨在供拥有类或其子类使用。Protected 成员可以通过子类安全地进行扩展。
Private 类和类成员由框架内部使用,不打算供应用程序开发人员使用。Private 类和成员可能会在任何时候更改或从框架中省略,且不应在应用程序逻辑中依赖它们。
static
标签。*请参阅下面的静态。下面是一个示例类成员,我们可以对其进行剖析以显示类成员的语法(在这种情况下,从 Ext.button.Button 类查看的 lookupComponent 方法)。
我们来看看成员行中的每一部分
lookupComponent
)( item )
)Ext.Component
)。对于不返回 undefined
以外任何内容的方法,可以省略此项,或者可以显示多个可能的值,这些值用正斜杠 /
分隔,表示返回的内容可能取决于方法调用的结果(即,如果 get 方法调用成功,则方法可能会返回一个组件,如果失败则返回 false
,这将显示为 Ext.Component/Boolean
)。PROTECTED
- 请参见下面的标志部分)Ext.container.Container
)。如果成员源自当前类,则源类将显示为蓝色链接;如果成员是从祖先或混合类继承的,则显示为灰色。查看源
)item : Object
)进行列出。undefined
,则“返回”部分将记录返回的类或对象类型以及描述(示例中为 Ext.Component
)自 3.4.0 起可用
- 示例中未显示)默认为:false
)API 文档使用许多标志来进一步传达类成员的功能和意图。标签可以用文本标签、缩写或图标表示。
classInstance.method1().method2().etc();
false
,则标记为可预防的事件将不会触发- 表示框架类
- 单例框架类。*有关详细信息,请参见单例标志
- 组件类型框架类(Ext JS 框架中扩展 Ext.Component 的任何类)
- 表示类、成员或指南在当前查看的版本中是新的
- 表示类型为 config
的类成员
- 表示类型为 property
的类成员
- 表示类型为 method
的类成员
- 表示类型为 event
的类成员
- 表示类型为 theme variable
的类成员
- 表示类型为 theme mixin
的类成员
- 表示类、成员或指南在当前查看的版本中是新的
在 API 文档页面上类名称的正下方是与当前类拥有的成员类型相对应的按钮行。每个按钮按类型显示成员数(此计数在应用筛选器时更新)。单击按钮将导航到该成员部分。将鼠标悬停在成员类型按钮上将显示一个弹出菜单,其中包含该类型的所有成员,以便快速导航。
与类配置选项相关的获取器和设置器方法将显示在方法部分以及 API 文档和成员类型菜单的配置部分中,它们与之一起工作的配置就在其正下方。获取器和设置器方法文档将位于配置行中,以便于参考。
您的页面历史记录保存在本地存储中,并显示在顶部标题栏正下方(使用可用空间)。默认情况下,仅显示与您当前正在查看的产品/版本匹配的搜索结果。您可以通过单击历史记录栏右侧的 按钮并选择“全部”单选选项来扩展显示内容。这将在历史记录栏中显示所有产品/版本的所有近期页面。
在历史记录配置菜单中,您还将看到最近访问的页面列表。结果按“当前产品/版本”和“全部”单选选项进行筛选。单击 按钮将清除历史记录栏以及保存在本地存储中的历史记录。
如果在历史记录配置菜单中选择了“全部”,则将启用“在历史记录栏中显示产品详细信息”复选框选项。选中后,每个历史记录页面的产品/版本将与历史记录栏中的页面名称一起显示。将光标悬停在历史记录栏中的页面名称上也将以工具提示的形式显示产品/版本。
可以使用页面顶部的搜索字段搜索 API 文档和指南。
在 API 文档页面上,还有一个筛选器输入字段,它使用筛选器字符串筛选成员行。除了按字符串筛选外,您还可以按访问级别、继承和只读筛选类成员。这是使用页面顶部的复选框完成的。
API 类导航树底部的复选框筛选类列表以包括或排除私有类。
单击一个空的搜索字段将显示您最近的 10 次搜索,以便快速导航。
每个 API 文档页面(除了 JavaScript 原语页面)都有一个与该类相关的元数据的菜单视图。此元数据视图将具有以下一项或多项
Ext.button.Button
类有一个备用类名 Ext.Button
)。备用类名通常用于向后兼容。默认情况下,可运行示例(Fiddles)在页面上展开。您可以使用代码块左上角的箭头单独折叠和展开示例代码块。您还可以使用页面右上角的切换按钮切换所有示例的折叠状态。切换所有状态将在页面加载之间记住。
默认情况下,类成员在页面中折叠。您可以使用成员行左侧的箭头图标展开和折叠成员,或使用右上角的展开/折叠所有切换按钮全局展开/折叠。
在较窄的屏幕或浏览器上查看文档将导致针对较小尺寸进行优化的视图。桌面和“移动”视图之间的主要区别是
可以通过单击 API 文档页面顶部的类名来查看类源。可以通过单击成员行右侧的“查看源”链接来查看类成员的源。
Sencha Touch 的组件和类在其生命周期的各个点触发广泛的事件。事件允许您的代码对周围的变化做出反应,并且是 Sencha Touch 中的一个关键概念。
每当您的某个类发生一些有趣的事情时,就会触发事件。例如,当任何组件呈现到屏幕上时,其 painted 事件被触发。我们可以通过配置一个简单的 listeners 配置来监听该事件
当您单击上面的“实时预览”按钮时,您将看到一个呈现到屏幕上的面板,然后是定义的警报消息。类触发的所有事件都会在其 API 页面中列出 - 例如,在编写 Ext.Panel 时有 28 个事件
虽然 painted 事件本身在某些情况下很有用,但还有其他事件更有可能被您使用。例如,按钮 在每次被点击时都会触发 tap 事件
您可以添加任意多个事件监听器。在以下示例中,我们将通过在 tap 监听器中调用 this.hide() 来混淆用户以隐藏按钮,仅在 1 秒后再次显示它。当调用 this.hide() 时,按钮被隐藏,hide 事件 被触发。hide 事件反过来触发我们的 hide 监听器,它在再次显示按钮之前等待一秒钟
每次触发事件时都会调用事件侦听器,因此你可以继续隐藏和显示按钮,直到永远。
大多数类在运行时都是可重新配置的,这意味着你可以随时更改其配置,例如高度、宽度或内容,并且组件将在屏幕上正确更新自身。其中许多配置更改会触发事件的触发 - 例如,按钮的 24 个组件事件中有 14 个具有以下名称:widthchange、hiddenchange 和 centeredchange。
在以下示例中,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,我们建议阅读以下指南,以更好地了解一切如何运作