Flex程式啟動過程再探秘 (1)基礎知識

2021-06-03 10:48:56 字數 1844 閱讀 8045

網路上有些針對標題題目的文章。讀下來感覺似乎大概明白些什麼,又似乎缺少些什麼,不能從頭到尾融會貫通。

我嘗試從個人的理解出發,做些內容補充和個人解釋。

>>講在前面

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...