egret.ScrollView
包 egret
类 public class ScrollView
继承 egret.ScrollView → egret.DisplayObjectContainer → egret.DisplayObject → egret.EventDispatcher → egret.HashObject
ScrollView 是用于滑动的辅助类,将一个显示对象传入构造函数即可。可以在指定的尺寸范围内显示超过该范围的显示对象。并可以在此范围内随意拖动。
公共属性
属性 |
---|
bounces : boolean 是否启用回弹,当启用回弹后,ScrollView中内容在到达边界后允许继续拖动,在用户拖动操作结束后,再反弹回边界位置 |
horizontalScrollPolicy : string 水平滚动条显示策略,on/off/auto |
scrollBeginThreshold : number 开始滚动的阈值,当触摸点偏离初始触摸点的距离超过这个值时才会触发滚动 |
scrollLeft : number 获取或设置水平滚动位置, |
scrollSpeed : number 滚动速度,这个值为需要的速度与默认速度的比值 |
scrollTop : number 获取或设置垂直滚动位置, |
verticalScrollPolicy : string 垂直滚动条显示策略,on/off/auto |
公共方法
方法 |
---|
ScrollView(content:egret.DisplayObject) 创建一个 egret.ScrollView 对象 |
addChild(child:egret.DisplayObject):egret.DisplayObject 将一个 DisplayObject 子实例添加到该 DisplayObjectContainer 实例中 |
addChildAt(child:egret.DisplayObject,index:number):egret.DisplayObject 将一个 DisplayObject 子实例添加到该 DisplayObjectContainer 实例中 |
getMaxScrollLeft():number 距离左侧的最大值 |
getMaxScrollTop():number 距离上方最大值 |
removeChild(child:egret.DisplayObject):egret.DisplayObject 从 DisplayObjectContainer 实例的子列表中删除指定的 child DisplayObject 实例 |
removeChildAt(index:number):egret.DisplayObject 从 DisplayObjectContainer 的子列表中指定的 index 位置删除子 DisplayObject |
removeContent():void 移除滚动的对象 |
setChildIndex(child:egret.DisplayObject,index:number):void 更改现有子项在显示对象容器中的位置 |
setContent(content:egret.DisplayObject):void 设置需要滚动的对象 |
setScrollLeft(scrollLeft:number,duration:number):void 设置滚动距离左侧的位置 |
setScrollPosition(top:number,left:number,isOffset:boolean):void 设置滚动位置 |
setScrollTop(scrollTop:number,duration:number):void 设置滚动距离上方的位置 |
swapChildren(child1:egret.DisplayObject,child2:egret.DisplayObject):void 交换两个指定子对象的 Z 轴顺序(从前到后顺序) |
swapChildrenAt(index1:number,index2:number):void 在子级列表中两个指定的索引位置,交换子对象的 Z 轴顺序(前后顺序) |
事件
Events |
---|
egret.Event.ADDED 将显示对象添加到显示列表中时调度。 |
egret.Event.ADDED_TO_STAGE 在将显示对象直接添加到舞台显示列表或将包含显示对象的子树添加至舞台显示列表中时调度。 |
egret.Event.REMOVED 将要从显示列表中删除显示对象时调度。 |
egret.Event.REMOVED_FROM_STAGE 在从显示列表中直接删除显示对象或删除包含显示对象的子树时调度。 |
egret.Event.ENTER_FRAME [广播事件] 播放头进入新帧时调度。 |
egret.Event.RENDER [广播事件] 将要更新和呈现显示列表时调度。 |
egret.TouchEvent.TOUCH_MOVE 当用户触碰设备时进行调度,而且会连续调度,直到接触点被删除。 |
egret.TouchEvent.TOUCH_BEGIN 当用户第一次触摸启用触摸的设备时(例如,用手指触摸手机屏幕)调度。 |
egret.TouchEvent.TOUCH_END 当用户移除与启用触摸的设备的接触时(例如,将手指从屏幕上抬起)调度。 |
egret.TouchEvent.TOUCH_TAP 当用户在启用触摸设备上的已启动接触的同一 DisplayObject 实例上抬起接触点时(例如,手机点击屏幕后抬起)调度。 |
egret.TouchEvent.TOUCH_RELEASE_OUTSIDE 当用户在启用触摸设备上的已启动接触的不同 DisplayObject 实例上抬起接触点时(例如,按住屏幕上的某个对象,然后从它上面挪开后再松开手指)调度。 |
属性详细信息
bounces
bounces : boolean = true
- 支持版本:Egret 2.4
- 运行平台:Web,Native
是否启用回弹,当启用回弹后,ScrollView中内容在到达边界后允许继续拖动,在用户拖动操作结束后,再反弹回边界位置
horizontalScrollPolicy
horizontalScrollPolicy : string
- 支持版本:Egret 2.4
- 运行平台:Web,Native
水平滚动条显示策略,on/off/auto。
scrollBeginThreshold
scrollBeginThreshold : number = 10
- 支持版本:Egret 2.4
- 运行平台:Web,Native
开始滚动的阈值,当触摸点偏离初始触摸点的距离超过这个值时才会触发滚动
scrollLeft
scrollLeft : number
- 支持版本:Egret 2.4
- 运行平台:Web,Native
获取或设置水平滚动位置,
scrollSpeed
scrollSpeed : number = 1
- 支持版本:Egret 2.4
- 运行平台:Web,Native
滚动速度,这个值为需要的速度与默认速度的比值。取值范围为 scrollSpeed > 0 赋值为 2 时,速度是默认速度的 2 倍
scrollTop
scrollTop : number
- 支持版本:Egret 2.4
- 运行平台:Web,Native
获取或设置垂直滚动位置,
verticalScrollPolicy
verticalScrollPolicy : string
- 支持版本:Egret 2.4
- 运行平台:Web,Native
垂直滚动条显示策略,on/off/auto。
方法详细信息
ScrollView()
public ScrollView(content:egret.DisplayObject)
创建一个 egret.ScrollView 对象
- 支持版本:Egret 2.4
- 运行平台:Web,Native
- 参数
- content:egret.DisplayObject - 需要滚动的对象
addChild()
public addChild(child:egret.DisplayObject):egret.DisplayObject
将一个 DisplayObject 子实例添加到该 DisplayObjectContainer 实例中。子项将被添加到该 DisplayObjectContainer 实例中其他所有子项的前(上)面。(要将某子项添加到特定索引位置,请使用 addChildAt() 方法。)
支持版本:Egret 2.4
运行平台:Web,Native
参数
- child:egret.DisplayObject - 要作为该 DisplayObjectContainer 实例的子项添加的 DisplayObject 实例。
返回:在 child 参数中传递的 DisplayObject 实例。
addChildAt()
public addChildAt(child:egret.DisplayObject,index:number):egret.DisplayObject
将一个 DisplayObject 子实例添加到该 DisplayObjectContainer 实例中。该子项将被添加到指定的索引位置。索引为 0 表示该DisplayObjectContainer 对象的显示列表的后(底)部。如果添加一个已将其它显示对象容器作为父项的子对象,则会从其它显示对象容器的子列表中删除该对象。
支持版本:Egret 2.4
运行平台:Web,Native
参数
- child:egret.DisplayObject - 要作为该 DisplayObjectContainer 实例的子项添加的 DisplayObject 实例。
- index:number - 添加该子项的索引位置。 如果指定当前占用的索引位置,则该位置以及所有更高位置上的子对象会在子级列表中上移一个位置。
返回:在 child 参数中传递的 DisplayObject 实例。
getMaxScrollLeft()
public getMaxScrollLeft():number
距离左侧的最大值
- 支持版本:Egret 2.4
- 运行平台:Web,Native
- 返回:距离左侧最大值
getMaxScrollTop()
public getMaxScrollTop():number
距离上方最大值
- 支持版本:Egret 2.4
- 运行平台:Web,Native
- 返回:距离上方最大值
removeChild()
public removeChild(child:egret.DisplayObject):egret.DisplayObject
从 DisplayObjectContainer 实例的子列表中删除指定的 child DisplayObject 实例。将已删除子项的 parent 属性设置为 null;如果不存在对该子项的任何其它引用,则将该对象作为垃圾回收。DisplayObjectContainer 中该子项之上的任何显示对象的索引位置都减去 1。
支持版本:Egret 2.4
运行平台:Web,Native
参数
- child:egret.DisplayObject - 要删除的 DisplayObject 实例。
返回:在 child 参数中传递的 DisplayObject 实例。
removeChildAt()
public removeChildAt(index:number):egret.DisplayObject
从 DisplayObjectContainer 的子列表中指定的 index 位置删除子 DisplayObject。将已删除子项的 parent 属性设置为 null;如果没有对该子项的任何其他引用,则将该对象作为垃圾回收。DisplayObjectContainer 中该子项之上的任何显示对象的索引位置都减去 1。
支持版本:Egret 2.4
运行平台:Web,Native
参数
- index:number - 要删除的 DisplayObject 的子索引。
返回:已删除的 DisplayObject 实例。
removeContent()
public removeContent():void
移除滚动的对象
- 支持版本:Egret 2.4
- 运行平台:Web,Native
setChildIndex()
public setChildIndex(child:egret.DisplayObject,index:number):void
更改现有子项在显示对象容器中的位置。这会影响子对象的分层。
- 支持版本:Egret 2.4
- 运行平台:Web,Native
- 参数
- child:egret.DisplayObject - 要为其更改索引编号的 DisplayObject 子实例。
- index:number - 生成的 child 显示对象的索引编号。当新的索引编号小于0或大于已有子元件数量时,新加入的DisplayObject对象将会放置于最上层。
setContent()
public setContent(content:egret.DisplayObject):void
设置需要滚动的对象
- 支持版本:Egret 2.4
- 运行平台:Web,Native
- 参数
- content:egret.DisplayObject - 需要滚动的对象
setScrollLeft()
public setScrollLeft(scrollLeft:number,duration:number):void
设置滚动距离左侧的位置
支持版本:Egret 2.4
运行平台:Web,Native
参数
返回:获取水平滚动的tween
setScrollPosition()
public setScrollPosition(top:number,left:number,isOffset:boolean):void
设置滚动位置
- 支持版本:Egret 2.4
- 运行平台:Web,Native
- 参数
setScrollTop()
public setScrollTop(scrollTop:number,duration:number):void
设置滚动距离上方的位置
swapChildren()
public swapChildren(child1:egret.DisplayObject,child2:egret.DisplayObject):void
交换两个指定子对象的 Z 轴顺序(从前到后顺序)。显示对象容器中所有其他子对象的索引位置保持不变。
- 支持版本:Egret 2.4
- 运行平台:Web,Native
- 参数
- child1:egret.DisplayObject - 第一个子对象。
- child2:egret.DisplayObject - 第二个子对象。
swapChildrenAt()
public swapChildrenAt(index1:number,index2:number):void
在子级列表中两个指定的索引位置,交换子对象的 Z 轴顺序(前后顺序)。显示对象容器中所有其他子对象的索引位置保持不变。
示例
/*
* 以下示例演示了 ScrollView 滚动组件的使用。
*/
class ScrollViewExample extends egret.DisplayObjectContainer {
public constructor() {
super();
this.startLoad();
}
private startLoad(): void {
//创建 ImageLoader 对象
const loader: egret.ImageLoader = new egret.ImageLoader();
//添加加载完成侦听
loader.addEventListener(egret.Event.COMPLETE, this.onLoadComplete, this);
const url: string = "resource/assets/egret_icon.png";
//开始加载
loader.load(url);
}
private onLoadComplete(event: egret.Event): void {
const loader: egret.ImageLoader = <egret.ImageLoader>event.target;
//获取加载到的纹理对象
const bitmapData: egret.BitmapData = loader.data;
//创建纹理对象
const texture = new egret.Texture();
texture.bitmapData = bitmapData;
//创建 Bitmap
const bitmap: egret.Bitmap = new egret.Bitmap(texture);
//创建 ScrollView
const scrollView: egret.ScrollView = new egret.ScrollView();
//设置滚动内容
scrollView.setContent(bitmap);
//设置滚动区域宽高
scrollView.width = 100;
scrollView.height = 100;
this.addChild(scrollView);
}
}