就在福克斯設計好後,沒想到悲慘的事情發生了。居然福克斯寫的 RectTracker 在放大的過程中,會出現顫抖的狀態。這個情況在 C# 或是 Java 從來沒發生過。
這個顫抖的現像是這樣的:當福克斯拉動左上、或上方的 Resizing Point 時,會因為同時修改 width/height 及 x/y 導致 RectTracker 有暫時性的顫抖。這個顫抖的成因可能是,先修改了 width 後,畫面就進行更動,然後再修改 x ,導致畫面再次更動。在 C# 或 Java 中,這個問題是根本就不會出現的,因為我們可以透過 suspendLayout 或 setIgnoreRepaint 的方式,來防止暫時性的畫面變化被更新到視窗上。
跟據 Flex 3 Dev Guild 的文件,理論上這個現象不應該出現。因為, Flex 的 UIComponent 在進行 Layout 的時候,有三種不同的狀態,且會採用 delay validation 的機制。所以,福克斯也做了另一項的實驗,就是在修改 width/height 及 x/y 前加入了 trace,並於 commitProperties 的方法中加入了 trace 。結果證明,Flex 3 Dev Guild 的文件寫的是正確的。但是,為何在福克斯的 Macbook Pro 中會發生顫抖的狀態,這就不得而知了。
老實說,福克斯不是個會向命運低頭的人 。他試過了在 Windows、Linux 的 Flash Player 都沒有問題,唯一只有在 Mac OS X 的版本上才有問題。另外,他也試過 visible 、 及 includeInLayout。這些東西也都沒有帶來正面的回給。最後,在試過網路上,其它可以放大縮小的 Resizable Window 元件後,福克斯發現,這似乎是 Flash Player 本質上的問題。因為,其它的 Resizable Window 在福克斯的 Macbook Pro 也會有一模一樣的問題。
福克斯的 Mac OS X 機器為:
MacBook Pro
CPU: 2.4 GHz Intel Core 2 Duo
Ram: 2 GB 667 Mhz DDR2 SDRAM
Mac OS X: 10.5.4
Web Browser: Safari and Mozilla Firefox
Flash Player Version: Shockwave Flash 9.0 r124
以下就是福克斯所設計的 RectTracker ,如果也有人不行的話,還煩請留言說一聲:

沒有留言:
張貼留言