【问题标题】:Text URL in AIR iOS app not selectableAIR iOS 应用程序中的文本 URL 不可选择
【发布时间】:2012-09-27 18:21:26
【问题描述】:

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

我认为,从阅读其他线程来看,URL 的点击区域只是文本本身的笔划......如果这是真的,我该怎么做才能增加点击区域?或者使文本可选择?有人建议在其他地方将影片剪辑放在 URL 后面,但这实际上是不可能的,因为这都是来自 XML 文件的动态文本。

我已经阅读过关于 StageText 的信息,但我认为这仅用于输入字段,此处并非如此。

我在 AS3 方面相当先进,但我更喜欢简单的解决方案,而不是重写大量代码。目前,我唯一能想到的就是获取 URL 并创建它,以便一旦您触摸文本字段上的任何位置,它就会导航到链接。但是,如果给定的文本字段中有超过 1 个 URL,这将崩溃。

有什么想法吗?

【问题讨论】:

    标签: ios actionscript-3 flash air


    【解决方案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 在 Adob​​e 论坛 (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、使用 AIR3.5 构建的 iPad 3 上进行了测试。链接的响应速度更快,而且我发现自己不会在屏幕上试图点击文本的笔触!

    【讨论】:

      猜你喜欢
      • 2013-02-26
      • 1970-01-01
      • 1970-01-01
      • 2019-08-05
      • 1970-01-01
      • 1970-01-01
      • 2015-03-17
      • 2015-03-30
      • 1970-01-01
      相关资源
      最近更新 更多