以下 UIScrollBar 组件允许您为文本字段添加滚动条. 您可以在创作时将滚动条添加到文本字段中,或使用 ActionScript 在运行时添加。若要使用 UIScrollBar 组件,请在舞台上创建一个文本字段,并从“组件”面板将 UIScrollBar 组件拖到文本字段的边框的任意象限中。
如果滚动条的长度小于其滚动箭头的加总尺寸,则滚动条将无法正确显示。一个箭头按钮将隐藏在另一个的后面。Flash 对此不提供错误检查。在此情况下最好使用 ActionScript 将滚动条隐藏。如果调整滚动条的尺寸以至没有足够的空间留给滚动框(滑块),则 Flash 会将滚动框变为不可见。
UIScrollBar 组件的功能与其他所有滚动条类似。它两端各有一个箭头按钮,按钮之间有一个滚动轨道和滚动框(滑块)。它可以附加至文本字段的任何一边,既可以垂直使用也可以水平使用。
有关 TextField 的信息,请参阅
《用于 Adobe® Flash® Professional CS5 的 ActionScript® 3.0 参考》
中的 TextField 类。
与 UIScrollBar 组件的用户交互
与许多其他组件不同,UIScrollBar 组件能够接收连续鼠标输入(例如,用户按住鼠标按键),而不需要重复单击。
UIScrollBar 组件和键盘不存在交互。
创建具有 UIScrollBar 组件的应用程序
以下过程描述如何在创作时将 UIScrollBar 组件添加到应用程序中。
-
创建一个新的 Flash (ActionScript 3.0) 文档。
-
创建一个动态文本字段,其高度足以容纳一行或两行文本,然后在“属性”检查器中为其指定实例名称
myText
。
-
在“属性”检查器中,将该文本输入字段的“线条类型”设置为“多行”或“多行不换行”(如果您计划在水平方向使用滚动条)。
-
打开“动作”面板,在主时间轴上选择第 1 帧,然后输入以下 ActionScript 代码来填充
text
属性,以便用户需要滚动字段才能查看全部文本:
myText.text="When the moon is in the seventh house and Jupiter aligns with Mars, then peace will guide the planet and love will rule the stars."
注:
确保舞台上的文本字段足够小,需要滚动字段才能查看所有文本。否则,滚动条将不会显示,或者可能只显示为不带滑块抓手(您拖动以滚动内容的部分)的两行。
-
验证对象贴紧功能是否已打开(“视图”>“贴紧”>“贴紧至对象”)。
-
从“组件”面板中将一个 UIScrollBar 实例拖到文本输入字段上靠近要附加该实例的一边。在松开鼠标时,该组件必须与文本字段重叠,以便能正确地绑定到该字段。为其指定实例名称
mySb
。
在“属性”检查器和“组件”检查器中,该组件的
scrollTargetName
属性自动填充为该文本字段实例的名称。如果“参数”选项卡上未显示该属性,则可能是重叠 UIScrollBar 实例的程度还不够。
-
选择“控制”>“测试影片”。
使用 ActionScript 创建 UIScrollBar 组件实例
您可以使用 ActionScript 在运行时创建 UIScrollBar 实例,并将它与文本字段相关联。下面的示例创建一个水平方向的 UIScrollBar 实例,并将其附加到名为
myTxt
的文本字段实例的底部(该字段加载来自某个 URL 的文本)。该示例还设置控制条的大小以使其与文本字段的大小相匹配:
-
创建一个新的 Flash (ActionScript 3.0) 文档。
-
将 ScrollBar 组件拖到“库”面板中。
-
打开“动作”面板,在主时间轴中选择第 1 帧,然后输入以下 ActionScript 代码:
import flash.net.URLLoader;
import fl.controls.UIScrollBar;
import flash.events.Event;
var myTxt:TextField = new TextField();
myTxt.border = true;
myTxt.width = 200;
myTxt.height = 16;
myTxt.x = 200;
myTxt.y = 150;
var mySb:UIScrollBar = new UIScrollBar();
mySb.direction = "horizontal";
// Size it to match the text field.
mySb.setSize(myTxt.width, myTxt.height);
// Move it immediately below the text field.
mySb.move(myTxt.x, myTxt.height + myTxt.y);
// put them on the Stage
addChild(myTxt);
addChild(mySb);
// load text
var loader:URLLoader = new URLLoader();
var request:URLRequest = new URLRequest("http://www.helpexamples.com/flash/lorem.txt");
loader.load(request);
loader.addEventListener(Event.COMPLETE, loadcomplete);
function loadcomplete(event:Event) {
// move loaded text to text field
myTxt.text = loader.data;
// Set myTxt as target for scroll bar.
mySb.scrollTarget = myTxt;
}
-
选择“控制”>“测试影片”。
|
|
|