Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Flex

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 12.02.2011, 19:01
matalata вне форума Посмотреть профиль Отправить личное сообщение для matalata Найти все сообщения от matalata
  № 1  
Ответить с цитированием
matalata

Регистрация: Feb 2011
Сообщений: 2
По умолчанию Загрузка 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 файл оперирует путями сервера.
Тяжёлое наследие написание десктопных приложений...

Старый 15.02.2011, 11:11
Lexxx_HU вне форума Посмотреть профиль Отправить личное сообщение для Lexxx_HU Найти все сообщения от Lexxx_HU
  № 2  
Ответить с цитированием
Lexxx_HU

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

Старый 15.02.2011, 14:38
matalata вне форума Посмотреть профиль Отправить личное сообщение для matalata Найти все сообщения от matalata
  № 3  
Ответить с цитированием
matalata

Регистрация: Feb 2011
Сообщений: 2
Увы, приложение для Flash Player.
Пока в HTML пытаюсь ограничится только поддерживаемыми тегами.

Создать новую тему Ответ Часовой пояс GMT +4, время: 01:34.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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