Как получить ярлык Combobox в Fade In Flex


1

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

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

2

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

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

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


3

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


0

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


1

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

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

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

Btw, кто-нибудь в мире на самом деле рассматривать функцию масштабирования флэш-плеер фича? Шутки в сторону. 17 ноя. 092009-11-17 01:34:18


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