使用 UIScrollBar 组件

以下 UIScrollBar 组件允许您为文本字段添加滚动条. 您可以在创作时将滚动条添加到文本字段中,或使用 ActionScript 在运行时添加。若要使用 UIScrollBar 组件,请在舞台上创建一个文本字段,并从“组件”面板将 UIScrollBar 组件拖到文本字段的边框的任意象限中。

如果滚动条的长度小于其滚动箭头的加总尺寸,则滚动条将无法正确显示。一个箭头按钮将隐藏在另一个的后面。Flash 对此不提供错误检查。在此情况下最好使用 ActionScript 将滚动条隐藏。如果调整滚动条的尺寸以至没有足够的空间留给滚动框(滑块),则 Flash 会将滚动框变为不可见。

UIScrollBar 组件的功能与其他所有滚动条类似。它两端各有一个箭头按钮,按钮之间有一个滚动轨道和滚动框(滑块)。它可以附加至文本字段的任何一边,既可以垂直使用也可以水平使用。

有关 TextField 的信息,请参阅 《用于 Adobe® Flash® Professional CS5 的 ActionScript® 3.0 参考》 中的 TextField 类。

与 UIScrollBar 组件的用户交互

与许多其他组件不同,UIScrollBar 组件能够接收连续鼠标输入(例如,用户按住鼠标按键),而不需要重复单击。

UIScrollBar 组件和键盘不存在交互。

UIScrollBar 组件参数

您可以在“属性”检查器或“组件”检查器中为每个 UIScrollBar 组件实例设置下列创作参数: direction scrollTargetName 。其中每个参数都有对应的同名 ActionScript 属性。

您可以编写 ActionScript,通过利用 UIScrollBar 实例的方法、属性和事件来设置该实例的其他选项。有关详细信息,请参阅 《用于 Adobe® Flash® Professional CS5 的 ActionScript® 3.0 参考》 中的 UIScrollBar 类。

创建具有 UIScrollBar 组件的应用程序

以下过程描述如何在创作时将 UIScrollBar 组件添加到应用程序中。

  1. 创建一个新的 Flash (ActionScript 3.0) 文档。

  2. 创建一个动态文本字段,其高度足以容纳一行或两行文本,然后在“属性”检查器中为其指定实例名称 myText

  3. 在“属性”检查器中,将该文本输入字段的“线条类型”设置为“多行”或“多行不换行”(如果您计划在水平方向使用滚动条)。

  4. 打开“动作”面板,在主时间轴上选择第 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."
    注: 确保舞台上的文本字段足够小,需要滚动字段才能查看所有文本。否则,滚动条将不会显示,或者可能只显示为不带滑块抓手(您拖动以滚动内容的部分)的两行。
  5. 验证对象贴紧功能是否已打开(“视图”>“贴紧”>“贴紧至对象”)。

  6. 从“组件”面板中将一个 UIScrollBar 实例拖到文本输入字段上靠近要附加该实例的一边。在松开鼠标时,该组件必须与文本字段重叠,以便能正确地绑定到该字段。为其指定实例名称 mySb

    在“属性”检查器和“组件”检查器中,该组件的 scrollTargetName 属性自动填充为该文本字段实例的名称。如果“参数”选项卡上未显示该属性,则可能是重叠 UIScrollBar 实例的程度还不够。

  7. 选择“控制”>“测试影片”。

使用 ActionScript 创建 UIScrollBar 组件实例

您可以使用 ActionScript 在运行时创建 UIScrollBar 实例,并将它与文本字段相关联。下面的示例创建一个水平方向的 UIScrollBar 实例,并将其附加到名为 myTxt 的文本字段实例的底部(该字段加载来自某个 URL 的文本)。该示例还设置控制条的大小以使其与文本字段的大小相匹配:

  1. 创建一个新的 Flash (ActionScript 3.0) 文档。

  2. 将 ScrollBar 组件拖到“库”面板中。

  3. 打开“动作”面板,在主时间轴中选择第 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; 
    }
  4. 选择“控制”>“测试影片”。