Вспышки гиперссылок, кажется, усекают окружающее пространство - PullRequest
1 голос
/ 08 сентября 2008

У меня странная ошибка, связанная с текстом Flash и гиперссылками, htmlText в TextField с тегами <a>, похоже, усекает окружающее пространство:

output

Как только я наведу курсор на текст, он сам "исправляется":

output with mouseover

Вот HTML-код в текстовом поле:

<p>The speeches at both the <a href="http://www.demconvention.com/speeches/" target="_blank">Democratic National Convention</a> last week and the <a href="http://www.gopconvention2008.com/videos" target="_blank">Republican National Convention</a> this week, have been, for me at least, must see TV.</p>

Когда я отключаю прикрепленную к нему таблицу стилей, эффект все равно возникает, но при наведении на нее курсора я не фиксирую расстояние. Я использую «Сглаживание для удобочитаемости» и включаю все заглавные, строчные, цифры и знаки препинания. Я также укажу, что если я изменю настройку рендеринга на «Использовать шрифты устройства», ошибка исчезнет.

Есть мысли?

Ответы [ 6 ]

1 голос
/ 24 февраля 2011

У меня была такая же проблема. Если вы установите autoSize в центр, это избавит от проблемы. Я не знаю почему, но это все исправляет. Кажется, это ошибка Flash.

1 голос
/ 20 июля 2010

Я перепробовал все вышеперечисленное, но обнаружил, что именно autosize = false исправило это для меня.

1 голос
/ 16 июня 2010

У меня тоже была эта проблема, и я обнаружил, что установка следующего исправила ее для меня.

yourTextField.gridFitType = GridFitType.SUBPIXEL;

Похоже, это может быть вызвано тем, что для AntiAliasType установлено значение advanced, по умолчанию используется значение PIXEL gridFitType. Я предполагаю, что он смещает часть копии, пытаясь зафиксировать символы в значениях целых пикселей.

1 голос
/ 01 декабря 2009

У святой коровы точно такая же проблема. Очевидно, порядок, в котором вы устанавливаете переменные, имеет значение. Посмотрите шестой ответ на этой теме . Я также заметил, что это происходит только с AntiAliasType.ADVANCED, который используется по умолчанию в TextField.

_description = new TextField();
_description.selectable = false;
_description.width = WIDTH; // Global.
addChild(_description);

var myriadPro:Font = new MyriadPro(); // Embedded font.
var style:StyleSheet = new StyleSheet();

var styleObj:Object = new Object();
styleObj.fontFamily = myriadPro.fontName;
styleObj.fontSize   = 13;
styleObj.textAlign  = "left";
styleObj.color      = "#FFFFFF";

style.setStyle("p", styleObj);
style.setStyle("a:link", styleObj);
style.setStyle("a:hover", styleObj);

_description.autoSize = TextFieldAutoSize.LEFT;
_description.antiAliasType = AntiAliasType.ADVANCED;
_description.condenseWhite = true;
_description.wordWrap   = true;
_description.multiline  = true;
_description.embedFonts = true;

_description.styleSheet = style;
_description.htmlText = '<p>A short description with an <a href="http://www.example.com/">HTML</a> link that can be clicked.</p>';
1 голос
/ 24 сентября 2008

Убедитесь, что ваша таблица стилей объявляет, что она должна делать с Anchors. Очевидно, что вы используете htmlText, если вы используете CSS, так как он видит <перед «href», он сразу же ищет определение класса CSS для a, и когда он не находит его, в результате получается другой текст, который вы видите . </p>

Добавьте следующее в свой CSS и убедитесь, что оно имеет те же настройки, что и обычный стиль вашего текста, в том числе стиль, вес и размер. Единственное, что должно отличаться - это цвет.

a:link
{
   font-family: sameAsReg;
   font-size: 12px; //Note flash omits things like px and pt.
   color:#FF0000; //Red
}

Убедитесь, что встраиваемые вами шрифты находятся в библиотеке и создаются в вашем коде. Встраивать каждое текстовое поле через пользовательский интерфейс глупо, когда вы можете просто загрузить шрифт из библиотеки во время выполнения, а затем использовать его где угодно.

Вы также можете импортировать несколько шрифтов во время компиляции и использовать их в одном и том же текстовом поле с помощью Some Text Some Other Text

Удачи, и я надеюсь, что это поможет.

0 голосов
/ 09 сентября 2008

Имеет ли значение, если вы ставите неразрывные пробелы непосредственно перед и после элемента привязки?

<p> ... &nbsp;<a ... >Link text</a>&nbsp; ... </p>

В лучшем случае это обходной путь, но вам может понадобиться время, чтобы найти реальное решение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...