ActionScript编程使用滚动窗格组件
作用:
如果某些内容比它们要加载到其中的区域大,则可以使用滚动窗格(ScrollPane)组件来显示这些内容。
说明:
ScrollPane组件在一个可滚动区域中呈现显示对象、JPEG、GIF和PNG文件,以及SWF文件。滚动窗格可以限制这些媒体类型所占用的屏幕区域,允许显示从本地磁盘或Internet加载的内容。
创建ScrollPane组件实例的方法如下所示。
ainers.ScrollPane;
//导入ScrollPane类
var scrollPane:ScrollPane = new ScrollPane();
的实例时首先要导入该类:
在ScrollPane组件创建过程中和运行时,都可以使用ActionScript 设置该组件中的内容。如果滚动窗格的内容具有有效的Tab停靠位,则窗格获得焦点以后,那么标记将获得焦点。离开内容中的最后一个Tab停靠位之后,焦点将移到下一个组件。滚动窗格中的垂直和水平滚动条不会获得焦点。
ScrollPane组件实例可以获取或设置的属性如下所示。
●bytesLoaded 获取已加载的内容的字节数。如果该属性与bytesTotal的
值相等,说明已加载所有字节。默认值为0。
●bytesTotal 获取要加载的内容的字节数。默认值为0。
●content 获取对加载到滚动窗格中的内容的引用。默认值为null。
●percentLoaded 获取一个范围在0到100之间的数字,指示已加载内容
的百分比。如果从库(而不是外部加载的内容)加载资源,则
percentLoaded属性设置为0。默认值为0。
●scrollDrag 获取或设置一个值,该值指示当用户在滚动窗格中拖动内
容时是否发生滚动。如果为true,表示当用户拖动内容时发生滚动;否
则不发生滚动。默认值为false。
●source 获取或设置以下内容:绝对或相对URL(该URL标识要加载
的SWF 或图像文件的位置)、库中影片剪辑的类名称、对显示对象的
引用或者与组件位于同一层上的影片剪辑的实例名称。有效的图像文件
格式包括GIF、PNG 和JPEG。默认值为null。
ScrollPane组件实例包含有5个方法,用于创建新的实例、加载对象、重新加载滚动窗格内容等功能,详细介绍如下所示。
●ScrollPane() 创建新的ScrollPane 组件实例。
●getStyleDefinition() 检索当前组件的默认样式映射。
●load() 将指定内容加载到滚动窗格区域中。该方法包含request和
context两个参数:request表示要用来将图像加载到滚动窗格中的
URLRequest对象;context表示设置加载操作上下文的LoaderContext
对象。
●refreshPane() 重新加载滚动窗格的内容,该方法不重绘滚动条。
●update() 根据内容的宽度和高度刷新滚动条属性。如果ScrollPane的
内容在运行时会更改,这就会很有用。
SrollPane组件实例可触发3个事件:当加载内容时触发progress 事件;当完成内容加载时触发complete事件;当用户通过使用组件上的滚动条或鼠标设备上的滚轮滚动内容时触发scroll事件。
示例:
将一个外部图像加载到滚动窗格组件实例中,并通过侦听该实例的progress和complete事件显示加载的字节数、总字符数和加载百分比,如下所示。
ainers.ScrollPane;
var url:String = "pic.jpg";
//外部图像的URL地址
var scrollPane:ScrollPane = new ScrollPane();
scrollPane.setSize(300,250); //定义滚动窗格的大小
//定义滚动窗格的位置
panescrollPane.addEventListener(ProgressEvent.PROGRESS, progressHandler);
//注册侦听滚动窗格实例的加载事件
scrollPane.addEventListener(Event.COMPLETE, completeHandler);
//注册侦听滚动窗格实例的完成加载事件
scrollPane.load(new URLRequest(url));
/
/加载外部图像
addChild(scrollPane);
//显示加载进度函数
function progressHandler(event:ProgressEvent):void {
var loaded:int = event.bytesLoaded;
//已加载字节数
var total:int = event.bytesTotal;
//总字节数
var pctLoaded:int = int(event.currentTarget.percentLoaded);
//加载的百分比数
trace("已加载字节: " + loaded + "/" + total + " 加载进度:" + pctLoaded + "%");
}
//显示加载完成函数
function completeHandler(event:Event):void {
trace("加载完成!");
}