我是Flex新手,负责增强现有应用程序。其中一项增强功能是让现在显示时间在显示时间和日期之间平稳淡化的时间。等待Flex效果完成
我知道这样做的正确方法是将字体文件嵌入到应用程序中,这样我就可以直接淡入淡出标签。如果可以的话,我尽量避免这种情况,因为我希望尽可能使我的更改尽可能不显眼。
我想出了我认为是一个合理的解决方法:创建一个“隐私屏幕”,恰好是时钟背景的确切大小,形状和颜色;初始化其α为0;然后在更改时间/日期时,淡入隐私屏幕,进行更改,然后再次将屏幕淡出。
的代码看起来是这样的:
var targets:Array = new Array();
targets.push(this.privacyScreen);
this.effectFadeIn.play(targets);
this.mylabel.text = "I am a date and/or time";
this.effectFadeOut.play(targets);
...与关键部件看起来像这样:
<mx:Label text="" id="mylabel" width="100%" height="100%" x="0" y="0" color="0xff0000"/>
<mx:Canvas id="privacyScreen" width="100%" height="100%" x="0" y="0" alpha="1" backgroundColor="{myConfiguration.backgroundColor}"/>
<mx:Fade id="effectFadeIn" alphaFrom="0.0" alphaTo="1.0" duration="250"/>
<mx:Fade id="effectFadeOut" alphaFrom="1.0" alphaTo="0.0" duration="250"/>
正如我敢肯定,经验丰富的Flex设计师已经知道,这个代码由美味的新鲜榨制而成FAIL。执行等待淡入效果完成的基本假设是错误的,淡入效果在淡入效果仍在进行时显然被忽略。
所以我想我有两个相关的问题:
- 是否有可能得到执行,同时等待完成运行效果暂停?
- 这种方法是否可行?还是仅仅是从上到下做错了?
我很感谢任何人都可以提供的见解。
(我提前,更多的我试图通过边学边做这种承认,我越来越意识到我需要利用一些在线trainingresources的自己在那里。)
啊哈! “效果结束”参数正是我需要的机制,这个示例代码很好地展示了这个概念。你有我的感谢。 – BlairHippo 2009-06-18 22:58:30
你的文章只是幸免于我一些真正的悲伤。谢谢! – noogrub 2012-06-13 15:11:56