我是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