0

我的网络服务器中有一个文本文件(txt)。我将读取文件内容并将其展示给用户。问题是它没有以正确的方式显示行分隔符和空格。我还需要激活可能的链接。例如,如果有http://www.google.com,那么用户只需点击链接,默认浏览器就会打开它。

到目前为止,我有这个:

var fileContents:String;

            try{

                var myLoader:URLLoader = new URLLoader();
                myLoader.addEventListener(Event.COMPLETE, onFileLoaded);
                myLoader.load(new URLRequest("http://my.website.com/test.txt"));

                function onFileLoaded(e:Event):void
                {
                    fileContents = String(e.currentTarget.data);
                    var alertMessage = fileContents;

我在java中做过同样的事情,但我对ActionScript不太熟悉。

Java代码:

URL url = new URL(getString(R.string.url));

                BufferedReader r = new BufferedReader(new InputStreamReader(
                        url.openStream(), "UTF-8"));
                StringBuilder total = new StringBuilder();
                String line;
                while ((line = r.readLine()) != null) {
                    total.append(line);
                    total.append(System.getProperty("line.separator"));

                }
                str = total.toString();
                r.close();

                return str;

java中的链接:

final SpannableString s = new SpannableString(sUrl);
            Linkify.addLinks(s, Linkify.WEB_URLS);
4

1 回答 1

0

您可以考虑使用 Adob​​e 的文本布局框架 (TLF)。您可以将文本导入为 HTML,它将为文本中找到的任何 URL 创建可点击的链接。TLF 有点笨拙,但非常强大。

private var myTextFlow:TextFlow = TextConverter.importToFlow(sourceText, TextConverter.TEXT_FIELD_HTML_FORMAT);

如果您使用的是 Flex 4,可以将生成的TextFlow对象分配给文本组件之一:

<s:RichText textFlow="{myTextFlow}" />

在 Actionscript 项目中,您必须做更多工作才能使用TextFlow. TLF 使用 MVC 方法。TextFlow用作模型,您可以将 a用于Sprite视图,并将 aContainerController作为控制器:

private var container:Sprite = new Sprite();
addChild(container);
private var controller:ContainerController = new ContainerController(container, 800,600);
myTextFlow.flowComposer.addController(controller);
myTextFlow.flowComposer.updateAllControllers();
于 2012-07-24T15:51:12.967 回答