網路上有些針對標題題目的文章。讀下來感覺似乎大概明白些什麼,又似乎缺少些什麼,不能從頭到尾融會貫通。
我嘗試從個人的理解出發,做些內容補充和個人解釋。
>>講在前面
flex3和flex4雖然有不同,但是對於標題題目而言,兩者沒有區別,所以分析哪種sdk都可以。作者使用flex4 sdk。
一. flash / flashplayer 基礎知識
我大膽滴猜測諸公中有很大一部分和我一樣沒有flash開發經驗。
那麼我再次明確一下: flex就是flash,沒有flash和flashplayer的一些必備知識,想要把flex框架搞清楚是非常困難的。
那些知識是必須了解和掌握的呢?我們在下面逐一列舉和說明。
對於這些知識,我們乍一看不能夠透徹了解的話沒有關係,隨著對後續內容的闡述,返回頭來再看這些知識點,就會理解頗深。
(1). flex就是flash
swf檔案是一種規範格式的檔案型別。對於flashplayer而言,無法分辨出swf檔案究竟是flash開發的,還是flex開發的。
換句話講,flex和flash編譯出的swf檔案遵守相同的內容格式和組織規則。
flex和flash同根(actionscriprt)不同株(乙個面向邏輯開發者,乙個面向動畫設計師)。
那麼flex和flash有什麼不同呢?
flex框架為開發者隱藏了flash中的開發動畫需要的兩個重要概念:時間軸和幀。從而使得flex和flash看起來有很大不一樣。
記住:時間軸和幀的概念只是被flex框架所隱藏,而不是取消。在flex框架底層,我們看得到時間軸和幀的身影,更確切地說,時間軸和幀是flex框架的基石。
所以沒有flash的相關知識,無法理解和看懂flex框架源**。
(2).再次認識flashplayer對於flex的意義
flashplayer是flex程式的執行環境和執行引擎。
flex程式的執行依賴於flashplayer自身執行特點,需要flashplayer原生事件驅動才能執行。
所以沒有flashplayer的相關知識,無法理解和看懂flex框架源**。
(3).時間軸、幀、視覺暫留(人眼的生理特性)
光對視網膜所產生的視覺在光停止作用後,仍保留一段時間的現象,是視覺暫留。這就是會動的**的基本原理。視覺暫留的時間是0.1秒。
如果每間隔0.1秒,我們連續切換一系列內容變化很小的,對於人眼而言,看到的這些變化就是連續的,就是動畫效果。
我們可以簡單地認為在自然推移的時間線上(時間軸),線上的每個時點的內容和狀態(幀)構成了視覺動畫的必備要素。如果這些時點間距足夠小(<0.1秒),那麼就產生了動畫效果。
flash是二維向量的動畫的主要工具。
flex程式也是某種意義上的動畫,是由使用者操作引起的操作介面的平滑變化。
(4).flash.display.movieclip是什麼?
flex框架中使用到了上述前兩個功能:
(5).enter_frame事件
(2)中說過,flashplayer自身發出的事件是驅動flex程式執行的原動力。其中flashplayer的enter_frame事件是非常重要的。
對該事件的理解是理解flex框架的重要的一環。
請參考:
(6).mx.managers.systemmanager 物件是flex程式啟動的原點
systemmanager繼承自movieclip類。
movieclip具有時間軸和幀。自然systemmanager 物件也具有時間軸和幀。
這裡所說的兩幀,指的就是systemmanager 物件攜帶的兩幀。
(7).「彈性跑到模型」
請參考:
Flex 啟動過程
2008 11 16 11 58 然後才是 通常我們所說的flex應用程式,本質上來說是基於flex框架 採用actionscript 3.0編寫的flash應用程式,從這一點來說,它和普通的flash應用程式沒有任何差別。相對來說,傳統的使用flash ide 如flash cs3 建立flash...
SpringBoot 應用程式啟動過程探秘
說到接觸 springboot 伊始,給我第一映像最深的是有兩個關鍵元素 對照上面的典型 這個兩個元素分別是 注 本文首發於my personal blog,歡迎光臨小站 我們來舉乙個栗子,把我們天天司空見慣的 springboot 應用的啟動類來拆解一下寫出來 public static void...
SpringBoot 應用程式啟動過程探秘
說到接觸 springboot 伊始,給我第一映像最深的是有兩個關鍵元素 對照上面的典型 這個兩個元素分別是 注 本文首發於my personal blog,歡迎光臨小站 我們來舉乙個栗子,把我們天天司空見慣的 springboot 應用的啟動類來拆解一下寫出來 public static void...