Влияние на htmlText в TextField - PullRequest
2 голосов
/ 29 ноября 2008

Во Flash, когда вы устанавливаете текст в объекте TextField с помощью свойства htmlText, изменение значения альфа больше не работает. Есть ли способ обойти это?

Ответы [ 4 ]

4 голосов
/ 03 декабря 2008

Некоторая путаница здесь.

  1. Работает ли альфа или нет, зависит от того, использует ли текстовое поле шрифты устройства, а не от того, использует ли он HTML. (Шрифты устройства используются каждый раз, когда у вас есть динамический / вводимый текст, и вы не встраиваете шрифт.)

  2. Если возможно, просто опубликуйте для Flash Player 10, который теперь поддерживает альфа для шрифтов устройства. (Обратите внимание, что вы должны установить свойство alpha текстового поля или его родительского элемента - выбор прозрачного цвета для самого текста не работает.)

  3. Откатной вариант для v8-9 - принудительное кэширование растрового изображения с применением фильтра. Например, вы можете использовать тень с прозрачным цветом. Это заставляет Flash отображать текстовое поле в растровое изображение перед его отображением на экране, поэтому ваша альфа применяется к растровому изображению, и все работает.

  4. Для игрока версии 7 или ниже нет возможности получить альфа для шрифтов устройства. Нужно либо встраивать шрифт, либо учиться жить без альфы. : D

2 голосов
/ 01 декабря 2008

Если вы обнаружите, что текстовое поле не отвечает свойству alpha, возможно, это потому, что вы не ввели шрифт. Убедитесь, что вы нажали «Вставить ...» в свойствах текстового поля и, скажем, «Базовая латиница».

Если вы обнаружите, что ваши htmlText форматирования (например, <b> и <i>) не отображаются, вы должны убедиться, что эти (стилизованные) шрифты также встроены. Самый простой способ сделать это - создать скрытые или нестандартные динамические текстовые поля с нужными вам стилями (обязательно добавьте и шрифт!)

0 голосов
/ 01 декабря 2008

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

import flash.display.BlendMode;
import flash.text.TextField;
// later...
var tf:TextField = new TextField();
tf.blendMode = BlendMode.LAYER;
tf.alpha = 0.5;
0 голосов
/ 29 ноября 2008

Динамический текст не поддерживает свойство альфа (среди прочих). Я предполагаю, что установка его в текст HTML накладывает те же ограничения. Один из способов, который я нашел, заключается в том, чтобы поместить текстовое поле в фрагмент ролика и установить вместо него альфа-фрагмент фрагмента ролика.

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