【问题标题】:Flash AS3 - Scroll dynamic textfield to a specific part just like HTML anchorFlash AS3 - 将动态文本字段滚动到特定部分,就像 HTML 锚一样
【发布时间】:2011-01-08 06:46:42
【问题描述】:

我们正在构建一个在后端使用 cms 的 flash 网站,并且我们允许管理员将锚点放在内容中。后来我们创建了整个内容的较小版本,只显示一小部分,然后是 [阅读更多] 按钮。它在每件事的顶部添加了一个新层,就像一个弹出窗口,并且填充了完整的内容。

现在我们想将弹出窗口中的文本滚动到单击[阅读更多]按钮的部分。

HTMl 中最常见的示例是大多数网站页脚中的go to top 链接将整个文档移至顶部。

编码愉快。

【问题讨论】:

    标签: flash actionscript-3 textfield


    【解决方案1】:

    您知道缩短的文本,并且您知道它的较长文本 - 为什么不使用textField.getCharBoundaries ()

    试试这个:

    var index:int = textField.text.indexOf (shortText) + shortText.length;
    var yposition:Number = textField.getCharBoundaries (index).y;
    

    yposition 现在应该指向出现 shortText 后第一个字母的左上角。因此,即使您的缩短文本不是第一行,而是从较长文本中的某个位置,您也可以找到滚动的位置。

    【讨论】:

    • 嗯,这有点棘手,管理员在一个页面上可以有多个缩短的文本,并且由于它们来自 cms 管理员已经应用了字体颜色和其他标签。 html标签会计入text.length吗?并且也可能发生两个缩短的文本具有相同的长度。我们最初遇到的问题在stackoverflow.com/questions/4530044/… 进行了解释,但我们对此无能为力,所以我们正在尝试这个解决方案。锚一个
    • getCharBoundaries() 返回Rectangle。只需滚动到textField.getCharBoundaries (shortText.length).y
    • @weltraumpirat:感谢您的代码。在您的第一次反馈之后,我就开始了一个测试用例,它确实有效,但有一个小问题。如果我正在寻找一个不在可见区域中的数字(我在每一行中使用1,2,3 ...<br> 标签使其进入另一行)。可见区域只向我显示10 行,它给了我正确的 x、y 等,但如果我尝试搜索不可见的行 13,它会为 textField.getCharBoundaries (index) 返回 null 或在 textField.getCharBoundaries (index).y 上抛出错误。
    • 我知道 JSBIN 不是分享 FLASH AS 代码的最佳场所,但我仍然发布了整个课程。这是链接jsbin.com/izibi5/edit
    • 对不起,我期待你使用面具。将 TextField 设置为 TextFieldAutoSize.LEFT,然后指定宽度。它只会向下扩展。然后使用您希望文本具有的尺寸设置蒙版 Sprite。然后,您可以通过设置textField.y = -textField.getCharBoundaries().y; 滚动文本字段。这样,您甚至可以根据需要添加漂亮流畅的 Tween。
    猜你喜欢
    • 2010-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-28
    • 2017-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多