我有一个组合框位于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”属性仅在下拉中创建项目-down使用正确的字体。
答案 0 :(得分:3)
您经常可以使用&lt; mx:Dissolve&gt;而不是&lt; mx:Fade&gt;,它看起来几乎相同,不需要嵌入字体。
答案 1 :(得分: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>
希望这可以帮助你。
答案 2 :(得分:1)
通过淡入淡出纯色矩形而不是淡化实际组件来解决工作。这很好用,特别是当你想控制组件应该褪色的颜色时。但是,有时您需要透明度,因此必须使用淡化。使用设备字体和嵌入字体整齐地使用Fade有一个小技巧:使用没有模糊的模糊滤镜。
基本上,当您设置位图过滤器时,播放器会在内部创建对象的位图副本,然后应用过滤器。如果模糊设置为不模糊,可以说它仍然看起来很好并且能够完美地淡化。这会破坏播放器的缩放功能,因为文本现在已经光栅化了。
<mx:Label id="percentage" text="{progress} %" truncateToFit="false">
<mx:filters>
<mx:BlurFilter blurX="0" blurY="0" />
</mx:filters>
</mx:Label>
答案 3 :(得分:0)
感谢您的帮助。 有完全相同的问题。 诀窍在于嵌入您正在使用的字体的“粗体”版本。 即使ComboBox中的字体未设置为粗体...
答案 4 :(得分:0)
var htm = $('#comboboxId').find('option:selected').html();