天天看點

Flex入門

簡單的了解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檔案。打開記事本寫入下面對代碼。

<?xml version="1.0" encoding="utf-8"?>

 <mx:Label text="Hello World" />

</mx:Application>

然後儲存為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有所幫助。

本文轉自 weijie@java 51CTO部落格,原文連結:http://blog.51cto.com/weijie/76060,如需轉載請自行聯系原作者