簡單的理解Flex
Flex是什麼?咱們能夠簡單的理解爲是許多技術和服務產品的總稱。也能夠當作是Adobe公司爲咱們J2ee應用程序提供的一個展示服務器。主要用來和咱們j2ee環境下進行整合的一個開發包(war)。也能夠理解爲主要有actionscript和mxml兩種語言組成的一個應用。從框架上考慮,flex就是一個開源的框架。就像Spring,Hibernate同樣。
一句話總結:Flex是用來
開發新一代的「複雜Internet應用」(RIAs - Rich Internet Applications)。結合桌面應用的可用性和web應用的易於管理的優勢來開發一種複雜Internet應用。既繼承了傳統桌面應用的及時性,又發揮了流行的web應用的易於部署和管理的優勢。
Flex是一個在J2EE應用服務器或servlet容器安裝的展示服務器。它擁有豐富的用戶界面組件、用於排布這些組件的基於XML的標記語言,以及能夠處理用戶交互的面向對象編程語言。這些技術的給咱們帶來的是:使用Flash播放器渲染複雜Internet應用,使用工業標準和開發者熟悉的方式進行開發。
簡單的理解Flex的組成
Flex主要包含兩種文件,一種是mxml文件和actionscript文件。其中mxml文件是基於xml的,這就代表了它是可擴展的,可定製的標籤。在mxml中引入了大量的豐富的標籤集 。加快了開發速度,它主要用來展示表示層的頁面。其中一個as文件主要用來控制一些簡單的編程邏輯和用戶交互的需求 ,as是一種你們熟悉的面向對象的語言,支持面向對象的三大特性,對咱們後臺程序員來講,更簡單了,它的語法與java,c#,js很類似,其實全部的面向對象的語言的語法都是大同小異的。
簡單的理解Flex的工做原理
我經過簡單的對比,讓你們很快的瞭解它的工做原理。先回想一下jsp的工做原理,它首先被預編譯成 servlet,也就是咱們熟悉的java類,而後再編譯成jvm所能執行的class字節碼。而mxml文件的這個工做原理與jsp很類似的,mxml首先也被預編譯成as中間文件,在編譯成Adobe Flash Player 能執行的swf字節碼。Adobe Flash Player 就像java虛擬機同樣。但它們有一點不一樣的是,jsp的字節碼執行是在服務器端執行的,而Flex的swf字節碼是有服務器發送到客戶端(瀏覽器)的Adobe Flash Player 上執行的。這一點的差異,你們可能就能夠看出flex的優勢了,起碼能夠減輕服務器的壓力了。
更形象的咱們能夠把mxml比做jsp,而as當作servlet(java)來理解可能更簡單了。上面是從工做原理上比喻是很是接近的。若是咱們但從表現的比喻的話,能夠把mxml當作是html,而把as當作javascript。這樣你們可能會更好的理解,mxml(html)主要用來顯示的,而as(javascript)主要用來控制一些編程邏輯和用戶交互的需求。咱們經過這兩個形象的比喻,你應該理解Flex了吧。
簡單的實現HelloWorld
我將會經過一個簡單的HelloWorld的例子,讓你完全的瞭解Flex的工做原理。先寫一個mxml文件,也能夠寫成as文件。打開記事本寫入下面對代碼。
而後保存爲HelloWord.mxml。我保存在D:\flex\HelloWord.mxml.
HelloWorld寫好了,咱們如今怎樣經過命令行運行呢?首先保證你的電腦上已經按裝了SDK,就像運行java必須安裝JDK同樣。通常咱們在配置環境變量path,就是能夠在命令行下不用切換到SDK的bin目錄下就能夠直接使用的命令,這個你們應該都很熟悉吧。本身根據安裝的SDK配置吧。
打開一個命令窗口:
切換到你的文件所在的文件夾下。以下圖:
當你看到在和HelloWorld.mxml同一目錄下會生成一個HelloWorld.swf文件,這就是咱們說的swf文件。它能夠在Adobe Flash Player中運行。雙擊這個文件就能夠看到一個以下圖的效果。
也能夠在命令窗口直接用命令:D:\flex\HelloWorld.swf.也會運行的。同時注意要保證你的電腦上已經安裝了Adobe Flash Player播放器。
上面我說過,mxml會產生一箇中間文件as,咱們怎麼沒看到呢?咱們知道咱們寫的jsp的頁面,而咱們用到是class文件,把中間那一步的文件並無放到咱們的工程中,這個其實也同樣,它只生成了swf文件,而沒有看見as文件,若是咱們想看到怎麼辦呢?
這時咱們就得用這個命令執行:mxmlc -keep-generated-actionscript HelloWorld.mxml
會在Hello.mxml文件的同目錄下產生一個generated的文件夾,裏面就是mxml文件編譯時產生的中間文件as.
generated文件下就是as中間碼:
但願你們看後對你之後學習和理解Flex有所幫助。