Как получить ярлык Combobox, чтобы исчезнуть во Flex - PullRequest
1 голос
/ 20 августа 2008

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

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

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

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

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

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» только делал элементы в выпадающем вниз используйте правильный шрифт.

Ответы [ 5 ]

3 голосов
/ 17 сентября 2008

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

2 голосов
/ 20 августа 2008

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

<?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>

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

1 голос
/ 15 апреля 2009

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

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

<mx:Label id="percentage" text="{progress} %" truncateToFit="false">
    <mx:filters>
        <mx:BlurFilter blurX="0" blurY="0" />
    </mx:filters>
</mx:Label>
0 голосов
/ 22 февраля 2010
var htm = $('#comboboxId').find('option:selected').html();
0 голосов
/ 23 января 2009

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

...