当前位置:  开发笔记 > 编程语言 > 正文

AIR iOS应用程序中的文本URL无法选择

如何解决《AIRiOS应用程序中的文本URL无法选择》经验,为你挑选了1个好方法。

我正在使用AIR 2.0(很快将使用Flash CS6更新到3.3)来创建一个iPad应用程序.我们有文本字段(经典,动态),有时包含一个或多个需要可点击的htmlText链接.在程序的桌面版本中,所有文本都是可选的,并且可以轻松访问链接.我的问题是,它需要在iPad上将链接混合20次才能识别出有链接并在Safari中导航到它.另一个奇怪的是,没有任何文字似乎是可选择的 - 我无法让iPad光标,复制/粘贴菜单等显示出来.

我认为,通过阅读其他主题,URL的命中区域只是文本本身的笔划...如果这是真的,我该怎么做才能增加命中区域?或者选择文字?在其他地方建议将影片剪辑放在URL后面,但这并不可能,因为这是XML文件中的所有动态文本.

我已经阅读过有关StageText但我收集的内容仅用于输入字段,这不是这里的情况.

我在AS3中相当先进,但我更喜欢一个简单的解决方案,而不是重写大块的代码.目前,我唯一能想到的就是获取URL并将其设置为只要您触摸文本字段的任何位置,它就会导航到链接.但如果给定文本字段中有多个URL,则会中断.

有任何想法吗?



1> 小智..:

我有同样的问题,而且让我感到困惑了一段时间.以下是我为获得理想行为而采取的措施:

1)不要使用TextEvent.LINK的侦听器,而是在TextField上侦听MouseEvent.CLICK(或TouchEvent.TAP).

例如.

var tf:TextField = new TextField();
tf.addEventListener(MouseEvent.CLICK, linkClicked);

2)在linkClicked()处理程序中,使用getCharIndexAtPoint()来确定单击的字符的索引,然后从中确定字符的TextFormat中的URL.这是改编自Colin Holgate在Adobe论坛上的帖子(http://forums.adobe.com/thread/231754)

public function linkClicked(e:MouseEvent):void {
    var idx:int = e.target.getCharIndexAtPoint(e.localX, e.localY);
    trace("Tapped:",idx);

    var tf:TextFormat = e.target.getTextFormat(idx);
    if(tf.url != "" && tf.url != null) {
        var linkURL:String = tf.url;
        trace(linkURL);

        // Hyperlink processing code here
        dispatchEvent(new UIEvent(UIEvent.LINK_TAPPED,tf.url));
    }
}

3)最后一行(dispatchEvent())将自定义事件发送到另一个函数来处理链接,但您可以在此处轻松内联代码.

我在运行iOS6.1的iPad 3上进行了测试,使用AIR3.5构建.链接响应速度更快,而且我发现自己不会捣乱屏幕试图击中文本的笔触!

推荐阅读
乐韵答题
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有