Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   Загрузка HTML с рисунками. (http://www.flasher.ru/forum/showthread.php?t=150499)

matalata 12.02.2011 19:01

Загрузка HTML с рисунками.
 
Всем привет.
Не могу справиться с простой, вроде, задачей.
Наверное, потому, что новичок в flash .
Задача простая – загружать с сервера и показывать HTM файлы с рисунками.
Делаю так:
Код AS3:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
                          xmlns:s="library://ns.adobe.com/flex/spark"
                          xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600" height="590" width="451"
                          creationComplete="application_creationCompleteHandler(event)">
        <fx:Declarations>
                <!-- Разместить невизуальные элементы (например, службы или объекты значений) -->
        </fx:Declarations>
        <fx:Script>
                <![CDATA[
 
                        import classes.ClassHtm;
 
                        import mx.events.FlexEvent;
                        import flash.net.URLLoader;
 
                        import flashx.textLayout.conversion.ITextImporter;
                        import flashx.textLayout.conversion.TextConverter;
                        import flashx.textLayout.elements.TextFlow;
                        import flash.display.Sprite;
                        import flash.events.*;
                        import flash.net.*;
                        import mx.controls.Alert;
 
                        protected function application_creationCompleteHandler(event:FlexEvent):void
                        {
                                trace("load requested document.");
                                var nfile:String = "http://localhost/HTML/file1.htm";
 
                                var urlRequest:URLRequest = new URLRequest(nfile);
                                var urlLoader:URLLoader = new URLLoader();
                                var text:String
                                urlLoader.dataFormat = URLLoaderDataFormat.TEXT; // default
                                urlLoader.addEventListener(Event.COMPLETE, urlLoader_complete);
                                urlLoader.load(urlRequest);
 
                                function urlLoader_complete(evt:Event):void {
                                        text = urlLoader.data;
                                        Alert.show(urlLoader.bytesTotal.toString());
 
                                        var importer:ITextImporter = TextConverter.getImporter(TextConverter. TEXT_FIELD_HTML_FORMAT);
                                        importer.throwOnError = false;
                                        var textFlow:TextFlow = importer.importToFlow(text);
 
 
 
                                Lesson.textFlow=        importer.importToFlow(text);
                                }
                        }
                ]]>
        </fx:Script>
        <s:Panel x="6" y="19" width="435" height="561" title="Lesson 1">
                <s:RichEditableText id="Lesson" x="10" y="10" text="RichText" width="415" height="507"/>
        </s:Panel>
</s:Application>

Проблема в том, рисунки отображаются только в том случае, если ссылки на рисунки абсолютные,
Например <img src="http://localhost/HTML/pict4.jpg" width="236" height="317">

Вопросы.

1.Как заставить RichEditableText при рендере искать рисунки по указанному адресу.
2.Как вариант, пытался загружать файл с рисунками в формате rtf.
TextConverter.getImporter(TextConverter.TEXT_LAYOUT_FORMAT)
Ничего не вышло - окно пустое. Компонент RichEditableText может ренденрить rtf?
3.Пока вижу только вариант с конвертацией html в swf. И показа swf с помощью SWFLoader. Какие тут подводные камни?
Да, еще,- как настроить работу trace? У меня вместо консоли «На данный момент нет консолей для отображения». Flash Builder 4, 60-ти дневная версия.

Добавлено через 17 часов 20 минут
Заменил <s:RichEditableText> на <mx:TextArea>.
Рисунки, естественно, не появились, но форматирование изменилось.

Чем лучше пользоваться?

Добавлено через 40 часов 51 минуту
Вопрос о поддержке формата rtf снят - не поддерживает.
Вопрос о trace тоже снят.

В RichEditableText и в конвертере не нашёл события о запросе урлы (надеялся там подменить ссылку).

Пока решил вопрос тупо - перед рендером html с помощью replace заменил относительные ссылки на абсолютные.
Есть что-нибудь получше?

Добавлено через 51 час 33 минуты
Вопрос о RichEditableText тоже снят - на третий день я допёр, что swf файл оперирует путями сервера.
Тяжёлое наследие написание десктопных приложений...

Lexxx_HU 15.02.2011 11:11

если пишете AIR приложение, то все решается довольно просто, там есть компонент mx:HTML который представляет из себя почти полноценный аналог браузера

matalata 15.02.2011 14:38

Увы, приложение для Flash Player.
Пока в HTML пытаюсь ограничится только поддерживаемыми тегами.


Часовой пояс GMT +4, время: 12:17.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.