1

我有一个组合框,它位于 Flex 3 的面板内。基本上我想使用 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”属性仅使下拉菜单中的项目使用正确的字体。

4

5 回答 5

3

您通常可以使用 <mx:Dissolve> 代替 <mx:Fade>,它看起来几乎相同并且不需要嵌入字体。

于 2008-09-17T13:26:28.123 回答
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>

希望这可以帮助你。

于 2008-08-20T18:05:41.057 回答
1

溶解通过淡入和淡出纯色矩形而不是淡化实际组件来工作。这很好用,尤其是当您希望控制组件应褪色的颜色时。但是,有时您需要透明度,因此必须使用 Fade。有一个小技巧可以让 Fade 巧妙地与设备字体和嵌入字体一起工作:使用没有模糊的模糊过滤器。

基本上,当您设置位图过滤器时,播放器会在内部创建对象的位图副本,然后将过滤器应用到该副本。如果将模糊设置为不模糊,可以这么说,它仍然看起来不错并且能够完美地淡化。这会破坏播放器的缩放功能,因为文本现在已光栅化。

<mx:Label id="percentage" text="{progress} %" truncateToFit="false">
    <mx:filters>
        <mx:BlurFilter blurX="0" blurY="0" />
    </mx:filters>
</mx:Label>
于 2009-04-14T23:06:05.617 回答
0

谢谢你的帮助。有完全相同的问题。诀窍在于嵌入您正在使用的字体的“粗体”版本。即使您的 ComboBox 中的字体未设置为粗体...

于 2009-01-23T08:28:35.970 回答
0
var htm = $('#comboboxId').find('option:selected').html();
于 2010-02-22T13:17:29.297 回答