#flash #actionscript-3
#flash #actionscript-3
Вопрос:
Возможно ли форматировать текст или форматированный текстовый документ (. doc) для переноса во flash в текстовое поле
Комментарии:
1. Какого рода форматирование?
2. жирный шрифт, курсив, размер, выравнивание, семейство шрифтов,…
3. из комментариев в ответе кажется, что вы не ищете простого форматирования в текстовом поле. Если я правильно понимаю, вы ищете что-то, что будет анализировать некоторый формат (возможно, doc), а затем отображать это в текстовом поле с надлежащим форматированием. И этот файл будет отредактирован кем-то, кто не знаком с программированием. Пожалуйста, отредактируйте вопрос, чтобы другие люди не запутались.
Ответ №1:
TextField
поддерживает некоторое форматирование HTML. Для этого вам нужно использовать свойство htmlText. Он поддерживает жирный шрифт, курсив и т.д. Но шрифт должен быть доступен в системе или встроен. И img
тег поддерживается не полностью.
Комментарии:
1. да, но это не решение для тех, кто не умеет работать с HTML или CSS.
2. Если кто-то работает с flash, то он должен знать минимальный HTML. Вам не нужны обширные знания, достаточно минимальных знаний о том, как использовать HTML-теги.
3. Форматирование в текстовом поле, отличное от HTML, невозможно. В FP 10 реализовано расширенное форматирование текста, называемое Text Layout Framework, но это не TextField. Изучение базового HTML может быть проще, чем переход на TLF.
4. Документ можно сохранить как HTML с помощью MS Word, но это приводит к очень сложному html, который может увеличить текстовое поле. Люди пишут сложные конвертеры для достижения функции вставки из word. Вам лучше изучить HTML, чтобы создавать форматированный текст во Flash.
5. @taskinoor: Я работаю с flash, но человеку, для которого я это делаю, нужно просто отредактировать текстовый файл для него, а я не тот человек.
Ответ №2:
Есть некоторые вещи, которые текстовое поле не может выполнить. Одно можно сказать наверняка: вы не можете изменить цвет фона для каждого символа. Но на самом деле вы можете выполнить форматирование на тонну больше, чем люди, очевидно, думают.
Это ОЧЕНЬ быстрый и грязный прототип, чтобы показать вам, как это работает в принципе.
package src
{
import flash.display.Sprite;
import flash.events.Event;
import flash.text.TextField;
import flash.text.TextFormat;
public class Main extends Sprite
{
private var tf:TextField;
private var tform:TextFormat;
private var iForm:TextFormat;
public function Main()
{
addEventListener(Event.ADDED_TO_STAGE, initMain);
}
private function initMain(e:Event):void
{
removeEventListener(Event.ADDED_TO_STAGE, initMain);
tform = new TextFormat("Arial", 12, 0);
iForm = new TextFormat("Arial", 12, 0xff0000, true, true);
tf = new TextField();
tf.defaultTextFormat = tform;
tf.text = "A sentence is just a sentence.";
tf.x = 100;
tf.y = 100;
tf.width = 300;
addChild(tf);
tf.setTextFormat(iForm, 2, 10);
// We can even change the TextFormat we used just one line above and
// reuse it for a completely different format. Finding out the starting
// and ending indexes isn't hard either. There are a few options. RegEx being my go to guy.
iForm.color = 0x0000ff;
iForm.size = 20;
iForm.italic = false;
tf.setTextFormat(iForm, 20, 29);
tf.appendText(" And yet some added text doesn't mess it up!");
}
}
}
надеюсь, это поможет!
Если вам нужно больше того, что может дать вам текстовое поле, вам придется использовать TLF. (что тоже потрясает.)
Ответ №3:
Вы не можете сделать это непосредственно из файла .doc. Вы можете сделать это, используя ограниченное подмножество HTML. TextField.htmltext поддерживает
< a> ссылки
< b > выделен жирным шрифтом
< i > курсив
< u> подчеркивание
< img> встроенные изображения
< начертание шрифта= «Arial» размер= «18» цвет = «#FFCC00»> Теги начертания шрифта.
< ul >< li > неупорядоченные списки (маркированные пункты)
Таким образом, вы можете импортировать форматированный текст, если при форматировании используются вышеуказанные HTML-теги. Если вы вводите текст из XML — часто бывает полезно обернуть импортированный текст в тег, чтобы избежать экранирования символов, таких как «<» и «amp;».