【问题标题】:fade in of added component with Actionscript使用 Actionscript 淡入添加的组件
【发布时间】:2009-07-02 16:56:37
【问题描述】:
您好,当我使用 Actionscript 添加新组件时,我希望它平滑淡入,例如这个组件
var df : DateField = new DateField();
df.text = DateField.dateToString(new Date(),stringFormat);
df.formatString = stringFormat;
我试过了
var fade : Fade = new Fade();
df.setStyle("showEffect", fade);
但这没有用。
有什么想法吗? =)
提前致谢
塞巴斯蒂安
【问题讨论】:
标签:
apache-flex
flash
actionscript-3
effects
fade
【解决方案1】:
showEffect 仅在您更改组件的 .visible 属性时触发 - 您需要在某个地方触发它才能体验淡入淡出的美妙之处。
我很快就把它放在一起,这样你就可以明白我的意思了(还请注意,我使用字符串来定义淡入淡出而不是对象 - 这样看起来总是更容易......希望它有所帮助!)
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
creationComplete="init()">
<mx:Script>
<![CDATA[
import mx.events.FlexEvent;
import mx.controls.DateField;
private function init():void{
var df:DateField = new DateField();
df.visible = false;
df.setStyle("showEffect","Fade");
this.addChild(df);
df.addEventListener(FlexEvent.CREATION_COMPLETE,triggerFade);
}
private function triggerFade(event:FlexEvent):void{
var df:DateField = event.currentTarget as DateField;
df.visible = true;
}
]]>
</mx:Script>
</mx:Application>
【解决方案2】:
需要指出的是,Adobe 的补间库和排序都很慢。我建议 GTween(仍处于测试阶段,但我没有遇到任何问题)、TweenLite/Max(可能有一些许可问题)或 Tweener(易于使用,但比其他两个慢得多),将 alpha 设置为 0然后淡入1。
这并不容易,但这些库提供了更好的性能。