Сведения о вопросе

Mathprofi

16:37, 26th August, 2020

Теги

flex   actionscript-3    

Как получить метку Combobox, чтобы исчезнуть в Flex

Просмотров: 490   Ответов: 5

У меня есть комбо-бокс, который сидит внутри панели в Flex 3. В основном я хочу, чтобы исчезла панель, используя эффект затухания в ActionScript. Я могу заставить fade работать нормально, однако метка комбо-бокса не исчезает. У меня была такая же проблема с кнопками и обнаружил, что их шрифты должны быть встроены. Не проблема. Я встроил шрифт, который я использовал, и метки кнопок исчезли правильно. Я пробовал аналогичный подход к комбинированному окну, но он не исчезает с выбранной метки элемента.

Вот что я сделал до сих пор: Добавьте код для шрифта в верхней части моего MXML в сценарий:

[Embed("assets/trebuc.ttf", fontName="TrebuchetMS")]
public var trebuchetMSFont:Class;

В моей функции инициализации

//register the font.
Font.registerFont(trebuchetMSFont);

combobox-е mxml:

<mx:ComboBox id="FilterFields" styleName="FilterDropdown" 
  left="10" right="10" top="10"
  fontSize="14">
  <mx:itemRenderer>
    <mx:Component>
      <mx:Label fontSize="10" />
    </mx:Component>
  </mx:itemRenderer>
</mx:ComboBox>

И стиль, который я написал, чтобы получить шрифты, примененные к комбинированному окну:

.FilterDropdown
{
  embedFonts: true;
  fontFamily: TrebuchetMS;
  fontWeight: normal;
  fontSize: 12; 
}

Причина, по которой я должен был написать стиль вместо размещения его в атрибуте "FontFamily", заключалась в том, что стиль сделал весь текст в поле со списком правильным шрифтом, где атрибут "FontFamily" только заставил элементы в раскрывающемся списке использовать правильный шрифт.



  Сведения об ответе

appple

13:28, 3rd August, 2020

Вы часто можете использовать <mx:Dissolve> вместо <mx:Fade>, он выглядит почти идентично и не требует встроенных шрифтов.


  Сведения об ответе

lool

06:08, 27th August, 2020

Хм, я не знаю, почему это не работает на вас. Вот пример того, как я заставил его работать:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="fx.play([panel])">
    <mx:Style>
        @font-face {
            src: local("Arial");
            fontFamily: ArialEm;
        }

        @font-face {
            src: local("Arial");
            fontFamily: ArialEm;
            fontWeight: bold;
        }

        @font-face {
            src: local("Arial");
            fontFamily: ArialEm;
            font-style: italic;
        }
    </mx:Style>
    <mx:XML id="items" xmlns="">
        <items>
            <item label="Item 1" />
            <item label="Item 2" />
            <item label="Item 3" />
        </items>
    </mx:XML>
    <mx:Panel id="panel" x="10" y="10" width="250" height="200" layout="absolute">
        <mx:ComboBox fontFamily="ArialEm" x="35" y="10" dataProvider="{items.item}" labelField="@label"></mx:ComboBox>
    </mx:Panel>
    <mx:Fade id="fx" alphaFrom="0" alphaTo="1" duration="5000" />
</mx:Application>

Надеюсь, это вам поможет.


  Сведения об ответе

JUST___

23:17, 12th August, 2020

Растворение работает путем выцветания сплошного цветного прямоугольника внутрь и наружу вместо выцветания самого компонента. Это прекрасно работает, особенно если вы хотите контролировать цвет, до которого компонент должен исчезать. Однако иногда вам нужна прозрачность, и поэтому вы должны использовать Fade. Существует небольшая хитрость, чтобы заставить Fade аккуратно работать как со шрифтами устройства, так и со встроенными шрифтами: используйте фильтр размытия без размытия.

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

<mx:Label id="percentage" text="{progress} %" truncateToFit="false">
    <mx:filters>
        <mx:BlurFilter blurX="0" blurY="0" />
    </mx:filters>
</mx:Label>


  Сведения об ответе

ASSembler

09:13, 4th August, 2020

var htm = $('#comboboxId').find('option:selected').html();


  Сведения об ответе

$DOLLAR

08:46, 11th August, 2020

Спасибо за вашу помощь. У него была точно такая же проблема. Хитрость заключается во внедрении "bold" версии шрифта, который вы используете. Даже если шрифт в вашем ComboBox не задан жирным шрифтом ...


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться