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

Вернуться   Форум Flasher.ru > Flash > Общие вопросы о Flash (не затрагивающие ActionScript)

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

Регистрация: May 2007
Сообщений: 12
По умолчанию зачеркнутый текст

есть флешка в которую передается html.
нужно чтобы слово было зачеркнутым. тег strike не помогает

как можно такое сделать?

Старый 21.10.2007, 13:16
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 2  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Самое простое, это найти зачеркнутый шрифт. Дальше идут сложные решения с программингом и они не касаются самого текста. Вы к ним готовы?
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 21.10.2007, 13:23
Evger вне форума Посмотреть профиль Отправить личное сообщение для Evger Найти все сообщения от Evger
  № 3  
Ответить с цитированием
Evger

Регистрация: May 2007
Сообщений: 12
готов :-)
они сводятся к определению координат слова и рисованию линии?

Старый 21.10.2007, 15:24
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 4  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Простой вариант из сложных Простой, потому что не учитывает вариант с разной высотой букв и выводит линию на одной высоте (в примере -6). Если этого достаточно, то гуд, если же будут разные высоты, попробуем придумать более сложный вариант.
Для корректной работы примера нужно создать текстовое поле с вшитым шрифтом Times New Roman.
Код:
import flash.display.BitmapData;
function strike (mc:MovieClip, str:String):Void {
	var txt:TextField = mc.txt;
	var stru:String = str.split ("<u>").join ("");
	stru = stru.split ("</u>").join ("");
	stru = stru.split ("strike>").join ("u>");
	txt.htmlText = stru;
	txt.antiAliasType = "advanced";
	var bmp:BitmapData = new BitmapData (txt._width, txt._height, true, 0x0);
	bmp.draw (txt);
	mc.attachBitmap (bmp, 1);
	bmp.scroll (0, -6);
	txt.antiAliasType = "normal";
	txt.htmlText = str;
}
function createText (name:String, x:Number, y:Number):MovieClip {
	var mc:MovieClip = this.createEmptyMovieClip (name, this.getNextHighestDepth ());
	mc._x = x;
	mc._y = y;
	var txt:TextField = mc.createTextField ("txt", 0, 0, 0, 350, 200);
	var fmt:TextFormat = txt.getTextFormat ();
	fmt.size = 20;
	txt.setNewTextFormat (fmt);
	txt.embedFonts = true;
	txt.html = true;
	txt.wordWrap = true;
	txt.multiline = true;
	return mc;
}
var str:String = "Пример <strike>зачеркнутого</strike> текста. <u>Пример</u> <strike>зачеркнутого</strike> текста. Пример <strike>зачеркнутого</strike> текста.";
var mc1:MovieClip = createText ("mc1", 50, 50);
mc1.txt.htmlText = "Не работает:<br>" + str;
////
var mc2:MovieClip = createText ("mc2", 50, 300);
strike (mc2, "Работает:<br>" + str);
__________________
(и)Нильс.ru | Плагины для FlashDevelop


Последний раз редактировалось iNils; 21.10.2007 в 15:30.
Старый 21.10.2007, 16:48
Evger вне форума Посмотреть профиль Отправить личное сообщение для Evger Найти все сообщения от Evger
  № 5  
Ответить с цитированием
Evger

Регистрация: May 2007
Сообщений: 12
спасибо, по поводу высоты - все устраивает, т.к текс в одну строчку.
шрифт другой, но думаю я разберусь.

еще раз спасибо.

Старый 21.10.2007, 17:30
Kikasso вне форума Посмотреть профиль Отправить личное сообщение для Kikasso Найти все сообщения от Kikasso
  № 6  
Ответить с цитированием
Kikasso
 
Аватар для Kikasso

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
Положи поле со шрифтом, и заграбь TextFormat с него.
Фокус в txt.antiAliasType - при таком сглаживании в битмапу только черточки прорисовываются.
Хороший, кстати, фокус.

Старый 21.10.2007, 17:43
Evger вне форума Посмотреть профиль Отправить личное сообщение для Evger Найти все сообщения от Evger
  № 7  
Ответить с цитированием
Evger

Регистрация: May 2007
Сообщений: 12
а почему только Times New Roman?
В коде это явно не указано. А шрифт который используется Microsoft Sans Serif или Arial (они похожи).

Можно как то для них сделать?

Старый 21.10.2007, 18:10
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 8  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Можно, просто надо формат соответствующий указать. Таймс — по дефолту.

Старый 19.06.2008, 13:37
incoob вне форума Посмотреть профиль Отправить личное сообщение для incoob Найти все сообщения от incoob
  № 9  
Ответить с цитированием
incoob

Регистрация: Mar 2008
Сообщений: 215
Попробовал перевести на as3 - вот что в итоге вышло:
Код:
	public class Example extends Sprite {
		public function strike(mc:MovieClip, str:String) {
			var txt = mc.getChildByName("txt");
			var stru:String = str.split ("<u>").join ("");
			stru = stru.split ("</u>").join ("");
			stru = stru.split ("strike>").join ("u>");
			txt.htmlText = stru;
			txt.antiAliasType = "advanced";
			var bmp:BitmapData = new BitmapData (txt.width, txt.height, true, 0x0);
			bmp.draw(txt);
			bmp.scroll(0, -6);
			mc.addChild(new Bitmap(bmp));
			txt.antiAliasType = "normal";
			txt.htmlText = str;
		}
		public function createText(x:Number, y:Number){
			var mc:MovieClip = new MovieClip()
			mc.x = x;
			mc.y = y;
			var txt:TextField = new TextField()
			txt.width = 350
			txt.height = 200
			txt.name = "txt"
			txt.wordWrap = true;
			txt.multiline = true;
			//txt.embedFonts = true;
			
			var fmt:TextFormat = txt.getTextFormat()
			fmt.size = 20
			txt.defaultTextFormat = fmt
			mc.addChild(txt)
			return mc;
		}
		public function ButtonExample() {
			var str:String = "Пример <strike>зачеркнутого</strike> текста. <u>Пример</u> <strike>зачеркнутого</strike> текста. Пример <strike>зачеркнутого</strike> текста.";
			var mc1:MovieClip = createText (50, 50);
			var target = mc1.getChildByName("txt")
			target.htmlText = "Не работает:<br>" + str;
			addChild(mc1)

			var mc2:MovieClip = createText (50, 300);
			strike(mc2, "Работает:<br>" + str);
			addChild(mc2)
		}
	}
Проблема в том, что зачеркнутый текст рисуется неправильно(текст рисуется дважды). В принципе понимаю что где-то надо указать embedFonts = true, но либо текст не рисуется, либо смазывается(как сейчас), либо же рисуется просто подчеркивание.

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

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

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


 


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


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