0

Webサーバーにテキストファイル(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

AdobeのTextLayoutFramework(TLF)の使用を検討してください。テキストをHTMLとしてインポートすると、テキスト内で見つかったURLへのクリック可能なリンクが作成されます。TLFは少し扱いに​​くいですが、非常に強力です。

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

Flex 4を使用している場合は、結果のTextFlowオブジェクトをテキストコンポーネントの1つに割り当てることができます。

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

Actionscriptプロジェクトでは、を使用するためにもう少し作業を行う必要がありますTextFlow。TLFはMVCアプローチを使用します。はTextFlowモデルとして機能しSprite、ビューにはを使用できContainerController、コントローラーとしてを使用できます。

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 に答える