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

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

20.08.2008 17:41:43
5 ОТВЕТОВ

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

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

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

2
20.08.2008 18:05:41

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

3
17.09.2008 20:37:13

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

0
23.01.2009 08:28:35

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

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

<mx:Label id="percentage" text="{progress} %" truncateToFit="false">
    <mx:filters>
        <mx:BlurFilter blurX="0" blurY="0" />
    </mx:filters>
</mx:Label>
1
14.04.2009 23:06:05
Кстати, кто-нибудь в мире на самом деле считает функцию увеличения флеш-плеера функцией? Шутки в сторону.
Marcus Stade 17.11.2009 01:34:18
var htm = $('#comboboxId').find('option:selected').html();
0
13.09.2011 18:11:41