![]() |
|
||||||||||
|
|||||
|
Регистрация: Feb 2011
Сообщений: 2
|
Всем привет.
Не могу справиться с простой, вроде, задачей. Наверное, потому, что новичок в flash . Задача простая – загружать с сервера и показывать HTM файлы с рисунками. Делаю так: <?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 файл оперирует путями сервера. Тяжёлое наследие написание десктопных приложений... |
|
|||||
|
Регистрация: Oct 2010
Сообщений: 67
|
если пишете AIR приложение, то все решается довольно просто, там есть компонент mx:HTML который представляет из себя почти полноценный аналог браузера
|
|
|||||
|
Регистрация: Feb 2011
Сообщений: 2
|
Увы, приложение для Flash Player.
Пока в HTML пытаюсь ограничится только поддерживаемыми тегами. |
![]() |
![]() |
Часовой пояс GMT +4, время: 01:34. |
|
|
« Предыдущая тема | Следующая тема » |
|
|