




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第1章 Flex概述Flex是Adobe公司推出的一系列工具和技術(shù),使開發(fā)人員可以開發(fā)和部署可升級(jí)的富互聯(lián)網(wǎng)應(yīng)用程序(RIAs)。Flex提供了一種現(xiàn)代的、基于標(biāo)準(zhǔn)的語(yǔ)言來(lái)支持公共模板設(shè)計(jì)、客戶端運(yùn)行環(huán)境、編程模型、開發(fā)模型和高級(jí)數(shù)據(jù)服務(wù)。富互聯(lián)網(wǎng)應(yīng)用程序(RIAs)是指像使用Web一樣的簡(jiǎn)單方式來(lái)部署富客戶端程序。這種程序具有比HTML更加健壯、反應(yīng)更加靈敏和互動(dòng)性更豐富的特點(diǎn)。1.1 Flex簡(jiǎn)介傳統(tǒng)的基于HTML的應(yīng)用程序部署成本低、結(jié)構(gòu)簡(jiǎn)單、簡(jiǎn)單易學(xué)。很多用戶和開發(fā)人員于是放棄了現(xiàn)代高性能計(jì)算機(jī)能帶來(lái)的用戶體驗(yàn),轉(zhuǎn)而追求數(shù)據(jù)的快速訪問,從而喪失了一些重要的UI功能。RIA利用相對(duì)健壯的
2、客戶端描述引擎。RIA的另一個(gè)好處是:數(shù)據(jù)能夠被緩存在客戶端,從而可以實(shí)現(xiàn)一個(gè)比基于HTML的響應(yīng)速度更快且數(shù)據(jù)往返于服務(wù)器的次數(shù)更少的用戶界面。Flex是Adobe公司近兩年推出的重量級(jí)產(chǎn)品與技術(shù)。Flex的出現(xiàn)就是為了高效地開發(fā)和部署富互聯(lián)網(wǎng)應(yīng)用程序。(源碼網(wǎng)整理:)1.1 Flex簡(jiǎn)介Adobe公司對(duì)于Flex采取了開源的策略,所以開發(fā)者可以在Flex原代碼的基礎(chǔ)上修改。新版Flex 4中的開發(fā)環(huán)境已經(jīng)更名為Flash Builder,而不再是Flex Builder系列。Flex采用事件驅(qū)動(dòng)機(jī)制,程序的執(zhí)行過(guò)程嚴(yán)格按照事件發(fā)生的時(shí)間順序執(zhí)行。本節(jié)將介紹為讀者Flex開發(fā)技術(shù)的特點(diǎn)、優(yōu)點(diǎn)
3、和新特性。 1.1.1 Flex的技術(shù)特點(diǎn)Flex可以在企業(yè)內(nèi)部或在 Web 上創(chuàng)建富互聯(lián)網(wǎng)應(yīng)用程序(RIA),堪稱最完整、最強(qiáng)大的RIA開發(fā)解決方案。它使企業(yè)能夠創(chuàng)建個(gè)性化的豐富多媒體應(yīng)用程序,極大地提高用戶的體驗(yàn),徹底革新人與 Web 的交互關(guān)系。1增強(qiáng)用戶體驗(yàn)2完善的開發(fā)環(huán)境3通用的配置環(huán)境4企業(yè)級(jí)的特征5消除頁(yè)面加載6標(biāo)準(zhǔn)的架構(gòu)7與瀏覽器兼容1.1.2 Flex SDK 4的新特性Flex 4較之Flex 3有了許多令人興奮的新特性。1新增主題和組件2增強(qiáng)布局方式3增強(qiáng)特效和濾鏡效果4新增雙向綁定功能5增強(qiáng)的CSS6增強(qiáng)的HTML模板7增強(qiáng)的狀態(tài)8增強(qiáng)ASDoc的支持(ASDoc是ad
4、obe官方提供的ActionScript的API文檔生成工具,類似于java中的 javadoc,可以很放方便的生成api文檔,對(duì)團(tuán)隊(duì)開發(fā)有很大幫助,)1 / 709運(yùn)行時(shí)共享庫(kù)10本地化1.2 Flash Builder的下載與安裝Flash Builder的安裝文件可從Adobe官方主頁(yè)下載。安裝文件版本有Flash Builder 4 Standalone Installer版本和Flash Builder 4 Plugin for Eclipse版本兩種。Flash Builder 4 Standalone Installer是獨(dú)立的開發(fā)工具的版本,F(xiàn)lash Builder 4 Pl
5、ugin for Eclipse是可將Flex 4集成于Eclipse的安裝插件。本節(jié)介紹Flash Builder 4 Standalone Installer的下載與安裝。1.2.1 安裝Flash Builder的系統(tǒng)要求Flash Builder 4可以安裝在Windows操作系統(tǒng)上,也可以安裝于Mac OS X操作系統(tǒng)中。安裝Flash Builder 4的最低配置如下。1Windows操作系統(tǒng)最低要求2Mac OS X操作系統(tǒng)最低要求1.2.2 下載Flash Builder Beta(1)瀏覽器中輸入“ Flex主頁(yè)。(2)單擊“Flash Builder 4”圖標(biāo)或者文字鏈接,
6、進(jìn)入Flash Builder 4的下載頁(yè)面。(3)單擊“Download the Flash Builder 4 beta 2 release”鏈接,進(jìn)入Flash Builder 4驗(yàn)證頁(yè)面。(4)下載Adobe公司的產(chǎn)品需要輸入Adobe ID和Password,可以免費(fèi)注冊(cè)。注冊(cè)步驟用戶可按網(wǎng)頁(yè)提示。(5)單擊“Flash Builder 4 Standalone Installer”下的“Download Flash Builder 4 Installer for Windows”鏈接,開始下載Windows平臺(tái)版本的Flash Builder 4。1.2.3 Flash Build
7、er 4 Beta的安裝(1)雙擊“FlashBuilder.exe”,彈出選擇安裝語(yǔ)言對(duì)話框。(2)單擊“OK”按鈕,彈出安裝第一步驟“簡(jiǎn)介”對(duì)話框。(3)單擊“下一步”按鈕,彈出安裝第二步驟“許可協(xié)議”對(duì)話框。(4)選擇“本人接受許可協(xié)議條款”單選框,單擊“下一步”按鈕,彈出安裝第三步驟“選擇安裝文件夾”對(duì)話框。1.2.3 Flash Builder 4 Beta的安裝(5)在文本框中輸入安裝路徑或是單擊“選擇”按鈕選擇安裝路徑。(6)單擊“安裝”按鈕。完成安裝后自動(dòng)彈出安裝第五步驟“安裝完畢”對(duì)話框。(7)單擊“完成”按鈕,完成安裝。 1.2.4 Flash Builder的新特性1新增
8、工作流模式與Flash Catalyst的支持2新增網(wǎng)絡(luò)監(jiān)控功能3添加單元測(cè)試的支持4新增ASDoc的支持5自動(dòng)生成getter和setter6自動(dòng)生成事件處理函數(shù)結(jié)構(gòu)7增強(qiáng)調(diào)試器功能8新增Flash CS4組件開發(fā)包9導(dǎo)入和應(yīng)用諸多主題10新增類包瀏覽器1.3 Flex基礎(chǔ)結(jié)構(gòu)MXML介紹開發(fā)者使用兩種語(yǔ)言來(lái)寫Flex應(yīng)用程序:MXML和ActionScript。MXML是一種XML標(biāo)識(shí)語(yǔ)言,用于進(jìn)行組件布局。MXML中的組件包括了可視組件和非可視組件。非外觀組件可以是從服務(wù)器中讀取的數(shù)據(jù)源或用戶組件綁定至服務(wù)器中的數(shù)據(jù)。1.4 建立第一個(gè)Flex 4程序下面以“Hello World”為第
9、一個(gè)例子為讀者詳細(xì)說(shuō)明如何建立第一個(gè)Flex 4程序,步驟如下。(1)選擇“文件”|“新建”|“Flex項(xiàng)目”命令,彈出“新建Flex項(xiàng)目”對(duì)話框。(2)在“項(xiàng)目名”文本框中輸入項(xiàng)目名稱,“應(yīng)用程序類型”下拉框選擇“Web(runs in Adobe Flash Palyer)”。(3)在“主應(yīng)用程序”文本框中輸入默認(rèn)項(xiàng)目啟動(dòng)的文件名,其他可默認(rèn)。單擊“完成”按鈕,完成項(xiàng)目的創(chuàng)建。1.4 建立第一個(gè)Flex 4程序(4)在編輯工作區(qū)中單擊“Design”按鈕,進(jìn)入設(shè)計(jì)模式。(5)從左下角的“組件”列表,選擇“控件”子文件夾下的“標(biāo)簽”控件。拖動(dòng)控件到設(shè)計(jì)模式工作區(qū)。(6)選擇“標(biāo)簽”控件,然后
10、在右下角的屬性工作區(qū)里設(shè)置“標(biāo)簽”控件的屬性。(7)在代碼模式下,生成的MXML代碼。 1.5 編譯與運(yùn)行第一個(gè)Flex 4程序前面建立了“Hello World”程序,編譯與運(yùn)行程序的步驟如下。(1)在想要成為程序默認(rèn)初始頁(yè)的mxml文件上右擊,選擇“設(shè)置為默認(rèn)應(yīng)用程序”。(2)菜單中選擇“運(yùn)行”|“運(yùn)行HelloWorld”命令,F(xiàn)lash Builder 4就開始編譯與運(yùn)行程序。(3)效果如圖1-19所示。1.6 小結(jié)本章對(duì)Flex進(jìn)行了介紹,包括Flex技術(shù)特點(diǎn)、新特性和優(yōu)點(diǎn)。Flex應(yīng)用程序具有豐富的交互性、操作性和用戶體驗(yàn),能開發(fā)出與HTML更強(qiáng)大的網(wǎng)絡(luò)應(yīng)用程序。本章圖文并茂地講解
11、了Flash Builder 4的下載與安裝。Flash Builder 4是Flex應(yīng)用程序開發(fā)的利器,能快速、有效地開發(fā)Flex應(yīng)用程序。有關(guān)Flash Builder 4的內(nèi)容將在下一章介紹。本章最后以“Hello World”為例,為讀者詳細(xì)講解了Flex應(yīng)用程序的開發(fā)編寫及編譯運(yùn)行過(guò)程。第2章 熟悉開發(fā)環(huán)境Flash Builder 4“工欲善其事必先利其器”。Flash Builder 4是Adobe公司推出的集成開發(fā)環(huán)境。Flash Builder 4工作環(huán)境是一種具有豐富特征的開發(fā)環(huán)境,有利于開發(fā)者開發(fā)Flex和ActionScript應(yīng)用程序。Flash Builder 4建
12、立在Eclipse這一開源的集成開發(fā)環(huán)境(IDE)上,用戶可使用強(qiáng)大的代碼編輯器,可視化設(shè)計(jì)器,調(diào)試工具等來(lái)開發(fā)Flex應(yīng)用程序。2.1 熟悉Flash Builder 4工作區(qū)Flash Builder 4工作區(qū)是開發(fā)Flex應(yīng)用程序的工作環(huán)境,熟悉工作環(huán)境對(duì)開發(fā)的益處是顯而易見的。Flash Builder 4平臺(tái)是基于Eclipse平臺(tái),因此與Eclipse的布局風(fēng)格異常相似。Flash Builder 4平臺(tái)的特點(diǎn)是集可視化編輯與代碼編輯為一體,用戶在Flash Builder 4環(huán)境下可方便地切換設(shè)計(jì)模式和代碼模式。2.1.1 Perspectives(透視)透視是一種布局風(fēng)格,與任
13、務(wù)、編輯器和視圖相關(guān)聯(lián)。一旦切換透視,對(duì)應(yīng)的任務(wù)、編輯器或視圖就可能發(fā)生改變。Flash Builder 4包含3種透視:“Flash”透視、“Flash Debug”透視以及“Flash Profile”透視。2.1.2 Editors(編輯器)1MXML編輯器2ActionScript編輯器3CSS編輯器2.1.3 Views(視圖)視圖是用以輔助用戶管理工程和開發(fā)項(xiàng)目。用戶通過(guò)視圖可以較直觀地處理一些需求。例如,“包資源管理器”既可以管理工作區(qū)中的文件和文件夾,又可以瀏覽包和類的結(jié)構(gòu)。2.2 編譯與運(yùn)行Flex 4程序詳解MXML語(yǔ)言和ActionScript語(yǔ)言都是需要編譯后才能運(yùn)行的
14、。Flash Builder 4開發(fā)環(huán)境中集成了兩者的編譯器,用戶只需選擇相應(yīng)的編譯運(yùn)行命令。本書在介紹第一個(gè)Flex程序“Hello World”程序時(shí),簡(jiǎn)單地介紹了了如何編譯與運(yùn)行Flex應(yīng)用程序。事實(shí)上編譯時(shí)可選的參數(shù)較多,本節(jié)將為讀者介紹詳細(xì)的編譯與運(yùn)行過(guò)程。仍以“Hello World”為例,講解編譯與運(yùn)行過(guò)程中的可選參數(shù)。2.3 調(diào)試Flex 4程序程序常包含不可知的邏輯錯(cuò)誤,這些錯(cuò)誤不屬于編譯錯(cuò)誤,編譯器不能檢查此類錯(cuò)誤。例如,程序中要判斷閏年,代碼的語(yǔ)法正確但判斷的方法是錯(cuò)誤的,此時(shí)編譯器不會(huì)報(bào)錯(cuò)。使用在調(diào)試功能能跟蹤代碼每一步的執(zhí)行,從而檢查邏輯錯(cuò)誤。Flash Builde
15、r 4開發(fā)環(huán)境有強(qiáng)大的調(diào)試功能,有利于程序進(jìn)行代碼檢查。本節(jié)介紹如何調(diào)試Flex應(yīng)用程序,包括添加斷點(diǎn)、開始調(diào)試、監(jiān)視變量等。2.3.1 添加斷點(diǎn)斷點(diǎn)的作用是使應(yīng)用程序在帶斷點(diǎn)的代碼行處中斷,從而開始檢查代碼。同時(shí),用戶可使用Flash Builder 4自帶的調(diào)試工具檢測(cè)并修復(fù)錯(cuò)誤。例如,變量視圖和表達(dá)式視圖。在代碼編輯器中添加斷點(diǎn)的方法很多。調(diào)試器只允許在以下代碼的斷點(diǎn)處中斷。MXML標(biāo)簽中包含ActionScript事件處理,如<mx:Button click=“a_funtion()”>。其中“click”是單擊處理事件。ActionScript代碼中。可以是MXML文件中
16、的<mx:Script>標(biāo)簽下,也可以是ActionScript文件中。ActionScript文件中的任何代碼行。2.3.2 調(diào)試程序在設(shè)置完斷點(diǎn)后可選擇“運(yùn)行”|“調(diào)試”命令,選擇相應(yīng)的運(yùn)行配置開始調(diào)試。也可單擊工具欄上的按鈕或快捷鍵F11開始調(diào)試。調(diào)試器運(yùn)行后就會(huì)自動(dòng)進(jìn)入“Flash Debug”透視。其中比較有用的是調(diào)試視圖。在調(diào)試程序時(shí)常需要監(jiān)視某些變量的變化,從而發(fā)現(xiàn)代碼中的錯(cuò)誤。變量視圖能自動(dòng)跟蹤程序中變量的變化。2.4 Flex 4項(xiàng)目工程概述Flex 4現(xiàn)支持創(chuàng)建的項(xiàng)目工程有三類:Flex 項(xiàng)目、ActionScript 項(xiàng)目、和Flex 庫(kù)項(xiàng)目。不同的工程用于開
17、發(fā)不同的項(xiàng)目。Flex 項(xiàng)目工程是普通的RIA工程,主要用于開發(fā)互聯(lián)網(wǎng)應(yīng)用程序。ActionScript 項(xiàng)目工程主要用于開發(fā)ActionScript類庫(kù)。Flex 庫(kù)項(xiàng)目用于開發(fā)共享庫(kù),可以是自定義組件,也可以是ActionScript代碼。2.4.1 Flex 項(xiàng)目Flex 項(xiàng)目是最基礎(chǔ)配置的工程,F(xiàn)lex項(xiàng)目包括兩種應(yīng)用程序類型:Web和Desktop。使用Flex框架、XML、Web services等來(lái)開發(fā)Flex應(yīng)用程序。Web應(yīng)用程序類型是在Flash Builder 4中編譯后會(huì)將可執(zhí)行文件(swf文件)放在HTML文件中,最終生成的是Web應(yīng)用程序。Desktop應(yīng)用程序類型
18、是在Flash Builder 4中編譯后會(huì)將文件放在AIR平臺(tái)中,最終生成的是AIR應(yīng)用程序。2.4.2 ActionScript 項(xiàng)目ActionScript 項(xiàng)目使用的是Flash API,而不是Flex框架。ActionScript 項(xiàng)目沒有可視化的表現(xiàn)。也就是說(shuō)ActionScript應(yīng)用程序中沒有設(shè)計(jì)模式這樣的概念。ActionScript項(xiàng)目編譯后也可運(yùn)行于Flash Player中。2.4.3 Flex 庫(kù)項(xiàng)目Flex庫(kù)項(xiàng)目用以創(chuàng)建自定義的代碼庫(kù)。代碼庫(kù)可共享于應(yīng)用程序或是其他開發(fā)人員。Flex庫(kù)項(xiàng)目編譯后生成SWC文件。SWC文件包含組件、各種資源和catalog.xml文件
19、。SWC常被用于制作主題和制作應(yīng)用程序的外觀。一個(gè)SWC主題可以包括多個(gè)CSS文件和全部的圖片、動(dòng)畫資源。2.5 Flash Builder 4常用快捷鍵快捷鍵的作用是使得開發(fā)工作更加高效和簡(jiǎn)單。Flash Builder 4中提供了許多快捷鍵。用戶想要更多的快捷鍵說(shuō)明,可選擇“幫助”|“鍵輔助”命令或“Shift+Ctr+L”快捷鍵查看。2.6 使用Flex幫助開發(fā)Flex應(yīng)用程序過(guò)程中難免會(huì)遇到困難,如對(duì)某一組件的某一屬性不清楚,此時(shí)也查看Flex 幫助。在安裝Flash Builder 4后,自動(dòng)安裝了Flex 幫助。用戶可選擇“幫助”|“幫助內(nèi)容”命令打開Flex 幫助。Flex 幫助
20、左下方的圖標(biāo)表示顯示全部?jī)?nèi)容,圖標(biāo)表示顯示搜索結(jié)果,圖標(biāo)表示顯示鏈接,圖標(biāo)表示顯示書簽。單擊不同的圖標(biāo)會(huì)切換至不同的內(nèi)容。另外,用戶可在左上方的“搜索”輸入框中輸入要搜索的內(nèi)容。2.7 小結(jié)Flash Builder 4是功能強(qiáng)大的集成開發(fā)環(huán)境,能高效地開發(fā)Flex應(yīng)用程序。本章主要介紹了Flash Builder 4的相關(guān)基礎(chǔ)。內(nèi)容包括熟悉Flash Builder 4工作區(qū),如何編譯運(yùn)行程序,如何調(diào)試程序,不同項(xiàng)目工程的作用、常用快捷鍵、Flex 幫助的使用等。通過(guò)本章的學(xué)習(xí),讀者會(huì)對(duì)Flash Builder 4的開發(fā)環(huán)境會(huì)有一個(gè)比較清楚的了解。第3章 ActionScript 3.0基
21、礎(chǔ)ActionScript 3.0是在Flash Player運(yùn)行環(huán)境下的編程語(yǔ)言,是一種面向?qū)ο蟮恼Z(yǔ)言。在Flex工程中,使用ActionScript 3.0語(yǔ)言作為編程語(yǔ)言。應(yīng)用程序的功能實(shí)現(xiàn)全部依賴于ActionScript 3.0。3.1 ActionScript 3.0概述ActionScript 3.0是運(yùn)行于Flash Player運(yùn)行環(huán)境的編程語(yǔ)言,使用新的ActionScript虛擬機(jī)AVM 2。AVM 2使用新的二進(jìn)制指令集,并在性能上有很大改進(jìn)。同時(shí),ActionScript 3.0使用面向?qū)ο竽P?,擴(kuò)展和提高了應(yīng)用程序接口。ActionScript 3.0代碼被Flex
22、 Builder或Flash中的編譯器編譯成二進(jìn)制數(shù)據(jù)。這種二進(jìn)制數(shù)據(jù)被裝入SWF文件中,然后運(yùn)行于Flash Player運(yùn)行環(huán)境中。3.2 使用ActionScript 3.0Flex工程中可有兩種方式使用ActionScript 3.0代碼:一種是在MXML文件的<fx:Script>標(biāo)簽下使用ActionScript 3.0代碼,另一種是直接在AS文件中編寫ActionScript 3.0代碼。3.2.1 在MXML文件中直接編寫ActionScript 3.0在MXML文件中編寫ActionScript 3.0代碼,只要在MXML文件下插入<fx:Script>
23、;標(biāo)簽。在MXML文件中的<mx:Script>標(biāo)簽下使用ActionScript 3.0。在Flex Builder 3的編輯器中輸入標(biāo)簽會(huì)自動(dòng)封閉。例如,輸入“<mx:Script>”后,自動(dòng)生成封閉區(qū)域“<mx:Script><!CDATA ></mx:Script>”。3.2.2 在AS文件中編寫ActionScript 3.0ActionScript Class、ActionScript File和ActionScript Interface都屬于AS文件。它們?nèi)叩奈募袷蕉紴锳S格式,不同的只是其中的定義有所區(qū)別。Fle
24、x應(yīng)用程序中最常使用的AS文件是ActionScript Class,也就類的定義。用戶可使用ActionScript Class創(chuàng)建向?qū)?lái)完成創(chuàng)建。3.2.3 MXML中引用AS文件MXML文件中若要引用AS文件有兩種方式:一種是引用使用< fx:Script>標(biāo)簽中的“source”屬性。這種方式可看成是將MXML文件和AS文件分離,從而減小MXML文件的代碼,提高重用性。另外一種方法是引用ActionScript Class(類)。使用這種方法的前提是AS文件中定義的是一個(gè)類。3.3 創(chuàng)建第一個(gè)ActionScript 3.0應(yīng)用程序用戶可以使用Flash、Flex Buil
25、der、Dreamweaver等任何文本編輯器編寫ActionScript 3.0代碼(as格式文件)。1設(shè)計(jì)ActionScript 3.0應(yīng)用程序2創(chuàng)建HelloWorld工程和Greeter類3編寫Greeter類4HelloWorld.mxml文件中添加ActionScript 3.0代碼5編譯運(yùn)行程序3.4 小結(jié)ActionScript 3.0是Flex應(yīng)用程序中的編程語(yǔ)言,控制Flex應(yīng)用程序的執(zhí)行,完成應(yīng)用程序的各項(xiàng)功能。在Flex工程中使用ActionScript 3.0有兩種方法:一種是在MXML文件的<fx:Script>標(biāo)簽下,一種是在AS文件中。對(duì)于大型應(yīng)用
26、程序來(lái)說(shuō),代碼與模型的分離能使得程序更簡(jiǎn)潔。另外,將ActionScript 3.0代碼寫入AS文件也提高了代碼的重用性。可以使用<fx:Script>標(biāo)簽中的Source屬性來(lái)指明引用的AS文件,也可以使用引用類的方法來(lái)使用AS類。第4章 數(shù)據(jù)類型程序中使用的各種變量都應(yīng)預(yù)先加以定義,即先定義,后使用。對(duì)變量的定義可以包括三個(gè)方面:數(shù)據(jù)類型,存儲(chǔ)類型,作用域。數(shù)據(jù)類型表示了變量的性質(zhì)、表示形式、占據(jù)存儲(chǔ)空間等。在ActionScript 3.0語(yǔ)言中,數(shù)據(jù)類型可分為:基本數(shù)據(jù)類型:其值不可以再分解為其他類型。復(fù)雜數(shù)據(jù)類型:復(fù)雜數(shù)據(jù)類型根據(jù)已定義的一個(gè)或多個(gè)數(shù)據(jù)類型定義。4.1 常
27、量與變量對(duì)于基本數(shù)據(jù)類型量,按其取值是否可改變又分為常量和變量?jī)煞N。在程序執(zhí)行過(guò)程中,其值不發(fā)生改變的量稱為常量,其值可變的量稱為變量。常量和變量可與數(shù)據(jù)類型結(jié)合起來(lái),如整型常量、整型變量、實(shí)型常量、實(shí)型變量、字符串常量、字符串變量。在程序中常量是可以不經(jīng)說(shuō)明而直接引用的,而變量則必須先定義后使用。4.1.1 直接常量和符號(hào)常量1直接常量整型常量:12、0、-3;實(shí)型常量:4.6、-1.23;字符串常量:“adf”、“b”。2符號(hào)常量符號(hào)常量是用標(biāo)識(shí)符代表一個(gè)常量。標(biāo)識(shí)符是用來(lái)標(biāo)識(shí)變量名、符號(hào)常量名、函數(shù)名、數(shù)組名、類型名、文件名的有效字符序列。4.1.2 變量程序中其值可以改變的量稱為變量。
28、一個(gè)變量應(yīng)該有一個(gè)名字,在內(nèi)存中占據(jù)一定的存儲(chǔ)單元。變量定義必須放在變量使用之前。變量名和變量值是兩個(gè)不同的概念。變量名是指變量的名稱,用以區(qū)別不同的變量。變量值是指變量中包含的值。4.1.3 變量賦初值變量賦初值是指變量定義時(shí)就賦值給變量,也稱為變量初始化。4.1.4 局部變量和全局變量局部變量也稱為內(nèi)部變量,是在函數(shù)內(nèi)作定義說(shuō)明的變量。其作用域僅限于函數(shù)內(nèi),離開該函數(shù)后再使用這種變量就是非法的。主調(diào)函數(shù)中定義的變量也只能在主調(diào)函數(shù)中使用,不能在其他函數(shù)中使用。形參變量是屬于被調(diào)函數(shù)的局部變量,實(shí)參變量是屬于主調(diào)函數(shù)的局部變量。允許在不同的函數(shù)中使用相同的變量名。全局變量也稱為外部變量,是在
29、函數(shù)外部定義的變量。4.1.5 變量的存儲(chǔ)方式變量的存儲(chǔ)方式按是否預(yù)先分配內(nèi)存空間,可分為動(dòng)態(tài)存儲(chǔ)方式和靜態(tài)存儲(chǔ)方式。靜態(tài)存儲(chǔ)方式是指在程序運(yùn)行期間分配固定的存儲(chǔ)空間方式。動(dòng)態(tài)存儲(chǔ)方式是指在程序運(yùn)行期間根據(jù)需要進(jìn)行動(dòng)態(tài)的分配存儲(chǔ)空間方式。用戶存儲(chǔ)空間可以分為3個(gè)部分:程序區(qū)靜態(tài)存儲(chǔ)區(qū)動(dòng)態(tài)存儲(chǔ)區(qū)動(dòng)態(tài)存儲(chǔ)區(qū)存放以下數(shù)據(jù):函數(shù)形式參數(shù)自動(dòng)變量(未加static聲明的局部變量)4.1.5 變量的存儲(chǔ)方式函數(shù)調(diào)用時(shí)的現(xiàn)場(chǎng)保護(hù)和返回地址對(duì)于以上這些數(shù)據(jù),在函數(shù)開始調(diào)用時(shí)分配動(dòng)態(tài)存儲(chǔ)空間,函數(shù)結(jié)束時(shí)釋放這些空間。有時(shí)用戶希望函數(shù)中的局部變量的值在函數(shù)調(diào)用結(jié)束后仍保留原值,這時(shí)就需要指定局部變量為靜態(tài)局部變量
30、,使用用關(guān)鍵字static進(jìn)行聲明。 4.2 整型數(shù)據(jù)整型數(shù)據(jù)用以存儲(chǔ)整型量,如2、60等。整型數(shù)據(jù)可以是整型常量,也可以是整型變量。4.2.1 整型常量1十進(jìn)制整型常量2八進(jìn)制整型常量3十六進(jìn)制整型常量4.2.2 整型變量1整型變量的分類2整型變量的定義3整型數(shù)據(jù)的溢出4.3 實(shí)型數(shù)據(jù) 實(shí)型數(shù)據(jù)用以存儲(chǔ)實(shí)型量。ActionScript 3.0 中實(shí)型數(shù)據(jù)類型只有一種:Number 型。實(shí)型數(shù)據(jù)可以是實(shí)型常量,也可以是實(shí)型變量。 4.3.1 實(shí)型常量的表示方法1十進(jìn)制形式2指數(shù)形式4.3.2 實(shí)型變量1實(shí)型數(shù)據(jù)在內(nèi)存中的存放形式2實(shí)型變量的定義3實(shí)型數(shù)據(jù)的舍入誤差4.4 字符串?dāng)?shù)據(jù)字符串?dāng)?shù)據(jù)存
31、儲(chǔ)字符串量,包括字符串常量和字符串變量。ActionScript 3.0中字符串?dāng)?shù)據(jù)類型為:String型。4.4.1 字符串常量字符串常量是指存儲(chǔ)字符串的常量,由一對(duì)雙引號(hào)或單引號(hào)封閉的字符串序列。4.4.2 轉(zhuǎn)義字符轉(zhuǎn)義字符是一種特殊的字符常量,主要用來(lái)表示那些用一般字符不便于表示的控制代碼。轉(zhuǎn)義字符以反斜線""開頭,后跟一個(gè)或幾個(gè)字符。4.4.3 字符串變量字符串變量是指存儲(chǔ)字符串的變量。4.5 各類型數(shù)據(jù)之間的轉(zhuǎn)換變量的數(shù)據(jù)類型是可以轉(zhuǎn)換的。轉(zhuǎn)換的方法有兩種,一種是自動(dòng)轉(zhuǎn)換,一種是強(qiáng)制轉(zhuǎn)換。4.5.1 自動(dòng)類型轉(zhuǎn)換自動(dòng)轉(zhuǎn)換遵循以下規(guī)則:(1)若參與運(yùn)算量的類型不同,
32、則先轉(zhuǎn)換成同一類型,然后進(jìn)行運(yùn)算。(2)轉(zhuǎn)換按數(shù)據(jù)長(zhǎng)度增加的方向進(jìn)行,以保證精度不降低。(3)在賦值運(yùn)算中,賦值號(hào)兩邊量的數(shù)據(jù)類型不同時(shí),賦值號(hào)右邊量的類型將轉(zhuǎn)換為左邊量的類型。4.5.2 強(qiáng)制類型轉(zhuǎn)換強(qiáng)制類型轉(zhuǎn)換把表達(dá)式的運(yùn)算結(jié)果強(qiáng)制轉(zhuǎn)換成某種數(shù)據(jù)類型。在使用強(qiáng)制轉(zhuǎn)換時(shí)應(yīng)注意以下問題:(1)括號(hào)所處的位置要正確。(2)無(wú)論是強(qiáng)制轉(zhuǎn)換或是自動(dòng)轉(zhuǎn)換,都只是為了本次運(yùn)算的需要而對(duì)變量的數(shù)據(jù)長(zhǎng)度進(jìn)行的臨時(shí)性轉(zhuǎn)換,而不改變數(shù)據(jù)說(shuō)明時(shí)對(duì)該變量定義的類型。4.6 小結(jié)ActionScript 3.0中的數(shù)據(jù)類型分為基本數(shù)據(jù)類型和復(fù)雜數(shù)據(jù)類型。本章詳細(xì)介紹了整型、實(shí)型、字符串型。根據(jù)數(shù)據(jù)是否是變量或常量,基
33、本數(shù)據(jù)又可分為整型常量、整型變量、實(shí)型常量、實(shí)型變量、字符串常量、字符串變量。各數(shù)據(jù)類型間可進(jìn)行轉(zhuǎn)換。轉(zhuǎn)換的方式有自動(dòng)轉(zhuǎn)換和強(qiáng)制轉(zhuǎn)換兩種。自動(dòng)轉(zhuǎn)換由編譯器自動(dòng)完成,強(qiáng)制轉(zhuǎn)換由用戶確定轉(zhuǎn)換的方向。第5章 運(yùn)算符和表達(dá)式ActionScript 3.0語(yǔ)言中運(yùn)算符和表達(dá)式很多。豐富的運(yùn)算符和表達(dá)式使得ActionScript 3.0語(yǔ)言功能強(qiáng)大。ActionScript 3.0語(yǔ)言的運(yùn)算符不僅具有不同的優(yōu)先級(jí),而且還有一個(gè)特點(diǎn),就是它的結(jié)合性。在表達(dá)式中,各運(yùn)算量參與運(yùn)算的先后順序不僅要遵守運(yùn)算符優(yōu)先級(jí)別的規(guī)定,還要受運(yùn)算符結(jié)合性的制約:到底是自左向右進(jìn)行運(yùn)算還是自右向左進(jìn)行運(yùn)算。這種結(jié)合性增加了
34、ActionScript 3.0語(yǔ)言的復(fù)雜性。5.1 ActionScript 3.0運(yùn)算符簡(jiǎn)介ActionScript 3.0語(yǔ)言的運(yùn)算符可分為以下幾類:?算術(shù)運(yùn)算符用于各類數(shù)值運(yùn)算,包括加“+”、減“-”、乘“*”、除“/”、求余“%”、自增“+”、自減“-”,共7種。?關(guān)系運(yùn)算符用于比較運(yùn)算,包括大于“>”、小于“<”、等于“=”、大于等于“>=”、小于等于“<=”和不等于“!= ”,共6種。?邏輯運(yùn)算符用于邏輯運(yùn)算,包括與“&&”、或“|”、非“! ”,共3種。?位操作運(yùn)算符用于二進(jìn)制位運(yùn)算,包括位與“&”、位或“|”、位非“”、位異或“
35、”、左移“<<”、右移“>>”,共6種。5.1 ActionScript 3.0運(yùn)算符簡(jiǎn)介?特殊運(yùn)算符,如括號(hào)“()”,下標(biāo)“”,取XML屬性“”等。?賦值運(yùn)算符用于賦值運(yùn)算,分為簡(jiǎn)單賦值(=)、復(fù)合算術(shù)賦值(+=,-=,*=,/=,%=)和復(fù)合位運(yùn)算賦值(&=,|=,=,>>=,<<=)3類,共11種。?條件運(yùn)算符用于條件求值。運(yùn)算符為“?:”。?逗號(hào)運(yùn)算符用于把若干表達(dá)式組合成一個(gè)表達(dá)式。運(yùn)算符為“,”。 5.2 算術(shù)運(yùn)算符和算術(shù)表達(dá)式算術(shù)運(yùn)算符是用來(lái)進(jìn)行算術(shù)運(yùn)算的操作符,是ActionScript 3.0中最基本的運(yùn)算符。使用算術(shù)運(yùn)
36、算符連接的表達(dá)式稱為算術(shù)表達(dá)式。5.2.1 基本的算術(shù)運(yùn)算符基本的算術(shù)運(yùn)算符包括:?加法運(yùn)算符“+”:加法運(yùn)算符為雙目運(yùn)算符,表示兩個(gè)量相加,具有右結(jié)合性。?減法運(yùn)算符“-”:減法運(yùn)算符為雙目運(yùn)算符,表示兩個(gè)量相減運(yùn)算,具有右結(jié)合性。?乘法運(yùn)算符“*”:乘法運(yùn)算符為雙目運(yùn)算,表示兩個(gè)量相乘,具有左結(jié)合性。?除法運(yùn)算符“/”:除法運(yùn)算符為雙目運(yùn)算,表示兩個(gè)量相除,具有左結(jié)合性。?求余運(yùn)算符“%”:求余運(yùn)算符為雙目運(yùn)算,表示兩個(gè)量相除求余數(shù),具有左結(jié)合性。5.2.2 算術(shù)表達(dá)式算術(shù)表達(dá)式是用算術(shù)運(yùn)算符和括號(hào)將運(yùn)算對(duì)象(也稱操作數(shù))連接起來(lái)的、符合ActionScript 3.0語(yǔ)法規(guī)則的式子。5.
37、2.3 運(yùn)算符的優(yōu)先級(jí)和結(jié)合性ActionScript 3.0語(yǔ)言中,運(yùn)算符的運(yùn)算優(yōu)先級(jí)共分為15級(jí)。1級(jí)最高,15級(jí)最低。在表達(dá)式中,優(yōu)先級(jí)較高的先于優(yōu)先級(jí)較低的進(jìn)行運(yùn)算。若兩個(gè)運(yùn)算符優(yōu)先級(jí)相同,按運(yùn)算符的結(jié)合性所規(guī)定的方向處理。ActionScript 3.0語(yǔ)言中各運(yùn)算符的結(jié)合性有兩種:左結(jié)合性(自左至右)和右結(jié)合性(自右至左)。5.2.4 自增、自減運(yùn)算符自增運(yùn)算符和自減運(yùn)算符為單目運(yùn)算(只對(duì)一個(gè)變量操作運(yùn)算),可有以下4種形式。?+i:i自增1后再參與其他運(yùn)算。?-i:i自減1后再參與其他運(yùn)算。?i+:i參與運(yùn)算后,i的值再自增1。?i-:i參與運(yùn)算后,i的值再自減1。5.3 關(guān)系運(yùn)
38、算符和關(guān)系表達(dá)式 關(guān)系運(yùn)算符是用來(lái)對(duì)兩個(gè)量之間的關(guān)系進(jìn)行運(yùn)算的操作符。使用關(guān)系運(yùn)算符連接的表達(dá)式稱為關(guān)系表達(dá)式。5.3.1 關(guān)系運(yùn)算符在ActionScript 3.0語(yǔ)言中有以下關(guān)系運(yùn)算符:?< :小于;?<= :小于或等于;?> :大于;?>= :大于或等于;?= :等于;?!= :不等于。5.3.2 關(guān)系表達(dá)式關(guān)系表達(dá)式使用關(guān)系運(yùn)算符連接其他對(duì)象。由于表達(dá)式可以又是關(guān)系表達(dá)式,就會(huì)出現(xiàn)嵌套的情況。關(guān)系表達(dá)式的值是真”和“假”,分別用“1”和“0”表示。5.4 邏輯運(yùn)算符和邏輯表達(dá)式 邏輯運(yùn)算符是用來(lái)進(jìn)行邏輯運(yùn)算的操作符,包括與、或、非運(yùn)算。使用邏輯運(yùn)算符連接的表達(dá)
39、式稱為邏輯表達(dá)式。5.4.1 邏輯運(yùn)算符ActionScript 3.0語(yǔ)言中提供了三種邏輯運(yùn)算符:?&& 與運(yùn)算?| 或運(yùn)算?! 非運(yùn)算與運(yùn)算符“&&”和或運(yùn)算符“|”均為雙目運(yùn)算符,具有左結(jié)合性。非運(yùn)算符“!”為單目運(yùn)算符,具有右結(jié)合性。5.4.2 邏輯運(yùn)算的值邏輯運(yùn)算的值只有“真”和“假”兩種,可用“1”和“0 ”來(lái)表示。求值規(guī)則如下:與運(yùn)算 “&&”:參與運(yùn)算的兩個(gè)量都為真時(shí),結(jié)果才為真,否則為假?;蜻\(yùn)算“|”:參與運(yùn)算的兩個(gè)量只要有一個(gè)為真,結(jié)果就為真。兩個(gè)量都為假時(shí),結(jié)果為假。以下代碼說(shuō)明與運(yùn)算規(guī)則。非運(yùn)算“!”:參與運(yùn)算的量為真時(shí),
40、結(jié)果為假;參與運(yùn)算量為假時(shí),結(jié)果為真。5.4.3 邏輯表達(dá)式使用邏輯運(yùn)算符連接式子就得到邏輯表達(dá)式。其中的表達(dá)式可以又是邏輯表達(dá)式,從而組成了嵌套的情形。5.5 賦值運(yùn)算符和賦值表達(dá)式賦值運(yùn)算符包括簡(jiǎn)單的賦值運(yùn)算符“=”和復(fù)合賦值運(yùn)算符,如“+=”、“-=”等。使用賦值運(yùn)算符連接的表達(dá)式稱為賦值表達(dá)式。5.5.1 簡(jiǎn)單賦值運(yùn)算符和簡(jiǎn)單賦值表達(dá)式簡(jiǎn)單賦值運(yùn)算符為“=”。由“= ”連接的式子稱為賦值表達(dá)式。賦值運(yùn)算符“=”具有右結(jié)合性。5.5.2 復(fù)合賦值運(yùn)算符和復(fù)合賦值表達(dá)式在賦值符“=”之前加上其他二目運(yùn)算符可構(gòu)成復(fù)合賦值符,如“+=”、“-=”、“*=”、“=”、“%=”、“<<
41、=”、“>>=”、“&=”、“=”、“|=”。 5.6 逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式在ActionScript 3.0語(yǔ)言中逗號(hào)“,”也是一種運(yùn)算符,稱為逗號(hào)運(yùn)算符。其功能是把兩個(gè)表達(dá)式連接起來(lái)組成一個(gè)表達(dá)式,稱為逗號(hào)表達(dá)式。逗號(hào)表達(dá)式可以嵌套,即表達(dá)式1或表達(dá)式2又是逗號(hào)表達(dá)式。整個(gè)逗號(hào)表達(dá)式的值等于表達(dá)式n的值。并不是在所有出現(xiàn)逗號(hào)的地方都組成逗號(hào)表達(dá)式。5.7 位運(yùn)算符位運(yùn)算指對(duì)二進(jìn)制數(shù)的位進(jìn)行運(yùn)算。ActionScript 3.0語(yǔ)言提供了6種位運(yùn)算符:?& :按位與;?| :按位或;? :按位異或;? :取反;?<< :左移;?>> :右
42、移。5.7 位運(yùn)算符1按位與運(yùn)算2按位或運(yùn)算3按位異或運(yùn)算4求反運(yùn)算5左移運(yùn)算6右移運(yùn)算 5.8 小結(jié)ActionScript 3.0中定義了許多運(yùn)算符,這使得ActionScript 3.0語(yǔ)言具有強(qiáng)大的運(yùn)算能力。運(yùn)算表達(dá)式是由運(yùn)算符連接起來(lái)的式子,其運(yùn)算方式及結(jié)果與運(yùn)算符的特性緊密相關(guān)。本章主要介紹了算術(shù)運(yùn)算符、關(guān)系運(yùn)算符、邏輯運(yùn)算符、賦值運(yùn)算符和位運(yùn)算符。算術(shù)運(yùn)算符中詳細(xì)介紹了各種基本的算術(shù)運(yùn)算符、逗號(hào)表達(dá)式及自增、自減運(yùn)算符。關(guān)系運(yùn)算符用以比較兩個(gè)量之間的關(guān)系。邏輯運(yùn)算符中包括與、或、非運(yùn)算符。賦值運(yùn)算符包括簡(jiǎn)單的賦值運(yùn)算符“=”和復(fù)合賦值運(yùn)算符。位運(yùn)算符中介紹了6種位運(yùn)算符的特點(diǎn)及使
43、用方法。第6章 程序設(shè)計(jì)的基本結(jié)構(gòu)從程序流程的角度來(lái)看,程序可以分為三種基本結(jié)構(gòu):順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。這3種基本結(jié)構(gòu)可以組成所有的各種復(fù)雜程序。程序設(shè)計(jì)的基本組成部分是語(yǔ)句,不同語(yǔ)句組成不同的程序結(jié)構(gòu)。例如,for語(yǔ)句、while語(yǔ)句組成循環(huán)結(jié)構(gòu)程序。6.1 順序結(jié)構(gòu)程序設(shè)計(jì)順序結(jié)構(gòu)程序是指程序中的語(yǔ)句由表達(dá)式語(yǔ)句、函數(shù)調(diào)用語(yǔ)句、控制語(yǔ)句、復(fù)合語(yǔ)句、空語(yǔ)句或賦值語(yǔ)句構(gòu)成。順序結(jié)構(gòu)是程序中最基本的結(jié)構(gòu)之一,最大的特點(diǎn)是程序是以從上至下的順序執(zhí)行。6.1.1 表達(dá)式語(yǔ)句表達(dá)式語(yǔ)句是最基本的語(yǔ)句,由表達(dá)式加上分號(hào)“;”組成。6.1.2 函數(shù)調(diào)用語(yǔ)句由函數(shù)名、實(shí)際參數(shù)加上分號(hào)“;”組成。執(zhí)行
44、函數(shù)語(yǔ)句就是調(diào)用函數(shù)體并把實(shí)際參數(shù)賦予函數(shù)定義中的形式參數(shù),然后執(zhí)行被調(diào)函數(shù)體中的語(yǔ)句,求取函數(shù)值(在后面函數(shù)中再詳細(xì)介紹)。6.1.3 復(fù)合語(yǔ)句把多個(gè)語(yǔ)句用括號(hào)括起來(lái)組成的一個(gè)語(yǔ)句稱復(fù)合語(yǔ)句。在程序中應(yīng)把復(fù)合語(yǔ)句看成是單條語(yǔ)句,而不是多條語(yǔ)句。復(fù)合語(yǔ)句內(nèi)的各條語(yǔ)句都必須以分號(hào)“;”結(jié)尾,在括號(hào)“”外不能加分號(hào)。6.1.4 空語(yǔ)句只有分號(hào)“;”組成的語(yǔ)句稱為空語(yǔ)句??照Z(yǔ)句是什么也不執(zhí)行的語(yǔ)句。在程序中空語(yǔ)句可用來(lái)作空循環(huán)體。6.1.5 賦值語(yǔ)句賦值語(yǔ)句是由賦值表達(dá)式再加上分號(hào)“;”構(gòu)成。賦值語(yǔ)句的功能和特點(diǎn)都與賦值表達(dá)式相同。它是程序中使用最多的語(yǔ)句之一。在賦值語(yǔ)句的使用中需要注意以下幾點(diǎn):1
45、表達(dá)式嵌套2變量賦初值與賦值語(yǔ)句的區(qū)別3賦值表達(dá)式與賦值語(yǔ)句的區(qū)別6.2 分支結(jié)構(gòu)程序設(shè)計(jì)分支結(jié)構(gòu)程序是指程序中存在分支的邏輯,需要分別處理各分支的邏輯。分支結(jié)構(gòu)程序常用的語(yǔ)句有:if語(yǔ)句、ifelse語(yǔ)句、ifelseif語(yǔ)句、switch語(yǔ)句。分支結(jié)構(gòu)是程序中最基本的結(jié)構(gòu)之一,最大的特點(diǎn)是程序是分支處理。6.2.1 if語(yǔ)句if語(yǔ)句語(yǔ)義是:如果表達(dá)式的值為真,則執(zhí)行其后的語(yǔ)句。否則不執(zhí)行該語(yǔ)句。以下代碼使用if語(yǔ)句實(shí)現(xiàn)取最大值。6.2.2 if-else語(yǔ)句if-else語(yǔ)句語(yǔ)義是:如果表達(dá)式的值為真,則執(zhí)行語(yǔ)句1,否則執(zhí)行語(yǔ)句2。6.2.3 if-else-if語(yǔ)句在使用if語(yǔ)句中還應(yīng)注
46、意以下問題。1表達(dá)式形式的多樣性2if語(yǔ)句格式3if語(yǔ)句中使用復(fù)合語(yǔ)句6.2.4 if語(yǔ)句的嵌套當(dāng)if語(yǔ)句中的執(zhí)行語(yǔ)句又是if語(yǔ)句時(shí),就構(gòu)成了if 語(yǔ)句嵌套的情形。在嵌套內(nèi)的if語(yǔ)句可能又是if-else語(yǔ)句,這將會(huì)出現(xiàn)多個(gè)if關(guān)鍵字和多個(gè)else關(guān)鍵字的情況,這時(shí)要特別注意if和else的配對(duì)問題。6.2.5 switch語(yǔ)句ActionScript 3.0語(yǔ)言還提供了另一種用于多分支選擇的語(yǔ)句:switch語(yǔ)句。switch語(yǔ)句的意思是:計(jì)算表達(dá)式的值,并逐個(gè)與其后的常量表達(dá)式值相比較。當(dāng)表達(dá)式的值與某個(gè)常量表達(dá)式的值相等時(shí),即執(zhí)行其后的語(yǔ)句。然后不再進(jìn)行判斷,繼續(xù)執(zhí)行后面所有case后的
47、語(yǔ)句。若表達(dá)式的值與所有case后的常量表達(dá)式均不相同時(shí),則執(zhí)行default后的語(yǔ)句。6.3 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)循環(huán)結(jié)構(gòu)是程序中一種很重要的結(jié)構(gòu)。其特點(diǎn)是:在給定條件成立時(shí),反復(fù)執(zhí)行某程序段,直到條件不成立為止。給定的條件稱為循環(huán)條件,反復(fù)執(zhí)行的程序段稱為循環(huán)體?用goto語(yǔ)句和if語(yǔ)句構(gòu)成循環(huán)。?while語(yǔ)句。?do-while語(yǔ)句。?for語(yǔ)句。6.3.1 goto語(yǔ)句goto語(yǔ)句是一種無(wú)條件轉(zhuǎn)移語(yǔ)句。goto語(yǔ)句一般不用,因?yàn)樗鼘⑹钩绦驅(qū)哟尾磺?,且程序不易讀。但在多層嵌套退出時(shí),用goto語(yǔ)句則比較合理。6.3.2 while語(yǔ)句while語(yǔ)句中的表達(dá)式是循環(huán)條件,語(yǔ)句為循環(huán)體。whi
48、le語(yǔ)句的語(yǔ)義是:計(jì)算表達(dá)式的值,當(dāng)值為真(非0)時(shí),執(zhí)行循環(huán)體語(yǔ)句。6.3.3 do-while語(yǔ)句do-while語(yǔ)句與while語(yǔ)句的不同在于:do-while語(yǔ)句先執(zhí)行循環(huán)中的語(yǔ)句,然后再判斷表達(dá)式。6.3.4 for語(yǔ)句在ActionScript 3.0語(yǔ)言中,for語(yǔ)句使用最為靈活。它完全可以取代 while 語(yǔ)句。for語(yǔ)句的執(zhí)行過(guò)程如下。(1)求解表達(dá)式1。(2)求解表達(dá)式2。若其值為真(非0),則執(zhí)行for語(yǔ)句中指定的內(nèi)嵌語(yǔ)句,然后執(zhí)行下面第3步。若其值為假(0),則結(jié)束循環(huán),轉(zhuǎn)到第5步。(3)求解表達(dá)式3。(4)轉(zhuǎn)回上面第2步繼續(xù)執(zhí)行。6.3.4 for語(yǔ)句(5)循環(huán)結(jié)束,
49、執(zhí)行for語(yǔ)句下面的一個(gè)語(yǔ)句。1表達(dá)式省略2表達(dá)式1的多樣性3使用逗號(hào)表達(dá)式 6.3.5 循環(huán)的嵌套循環(huán)體語(yǔ)句中可以又是循環(huán)語(yǔ)句,這樣就形成了循環(huán)的嵌套。例如,for語(yǔ)句的循環(huán)體語(yǔ)句中又包括for語(yǔ)句。層層嵌套的循環(huán)在程序中經(jīng)常見到,但一般嵌套的次數(shù)不宜超過(guò)5次。因?yàn)檫@樣會(huì)使程序的可讀性和執(zhí)行效率變差。6.3.6 幾種循環(huán)語(yǔ)句的比較四種循環(huán)語(yǔ)句都可以用來(lái)處理同一個(gè)問題,一般可以互相代替。其中for語(yǔ)句功能最強(qiáng)大,goto語(yǔ)句盡量少使用。while語(yǔ)句和do-while語(yǔ)句的循環(huán)體語(yǔ)句中應(yīng)包括使循環(huán)趨于結(jié)束的語(yǔ)句,從而避免死循環(huán)。用while語(yǔ)句和do-while語(yǔ)句時(shí),循環(huán)變量初始化的操作應(yīng)在
50、while和do-while語(yǔ)句之前完成。而for語(yǔ)句可以在表達(dá)式1中實(shí)現(xiàn)循環(huán)變量的初始化。6.3.7 break語(yǔ)句break語(yǔ)句通常用在循環(huán)語(yǔ)句和開關(guān)語(yǔ)句中。當(dāng)break語(yǔ)句用于do-while語(yǔ)句、for語(yǔ)句或while語(yǔ)句中時(shí),可使程序終止循環(huán)而執(zhí)行循環(huán)后面的語(yǔ)句。break語(yǔ)句一般總是與if語(yǔ)句聯(lián)合使用,即滿足條件時(shí)便跳出循環(huán)。使用break語(yǔ)句應(yīng)注意的地方包括:?break語(yǔ)句對(duì)if-else的條件語(yǔ)句不起作用。?在多層循環(huán)中,一個(gè)break語(yǔ)句只向外跳一層。6.3.8 continue 語(yǔ)句continue語(yǔ)句的作用是跳過(guò)循環(huán)體中剩余的語(yǔ)句而強(qiáng)行執(zhí)行下一次循環(huán)。continue語(yǔ)
51、句只用在for語(yǔ)句、while語(yǔ)句或do-while語(yǔ)句中,常與if語(yǔ)句一起使用,用以加速循環(huán)。6.4 小結(jié)與其他大部分程序一樣,ActionScript 3.0語(yǔ)言中的基本結(jié)構(gòu)也包括順序結(jié)構(gòu)、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu)。順序結(jié)構(gòu)程序由表達(dá)式語(yǔ)句、函數(shù)調(diào)用語(yǔ)句、復(fù)合語(yǔ)句、空語(yǔ)句、賦值語(yǔ)句組成,其特點(diǎn)是程序按順序執(zhí)行。分支結(jié)構(gòu)程序中有不同的邏輯分支,需要分別處理。分支結(jié)構(gòu)程序可使用if語(yǔ)句、if-else語(yǔ)句、if-else-if語(yǔ)句、switch語(yǔ)句來(lái)實(shí)現(xiàn)分支處理。循環(huán)結(jié)構(gòu)程序中當(dāng)循環(huán)條件成立時(shí),程序執(zhí)行循環(huán)體中的語(yǔ)句,直至循環(huán)條件不成立。循環(huán)結(jié)構(gòu)程序可使用while語(yǔ)句、do-while語(yǔ)句、for
52、語(yǔ)句來(lái)實(shí)現(xiàn)循環(huán)。其中for語(yǔ)句功能最為強(qiáng)大。break語(yǔ)句和continue語(yǔ)句可分別用于退出循環(huán)和加速循環(huán)。第7章 函數(shù)函數(shù)是ActionScript 3.0源程序的基本模塊,通過(guò)對(duì)函數(shù)模塊的調(diào)用實(shí)現(xiàn)特定的功能。ActionScript 3.0語(yǔ)言不僅提供了極為豐富的庫(kù)函數(shù),還允許用戶建立自己定義的函數(shù)。用戶可把算法編成一個(gè)個(gè)相對(duì)獨(dú)立的函數(shù)模塊,然后通用調(diào)用來(lái)使用函數(shù)??梢哉f(shuō)ActionScript 3.0程序的大部分工作都是由各式各樣的函數(shù)完成的。7.1 函數(shù)概述1函數(shù)定義角度從函數(shù)定義的角度看,函數(shù)可分為庫(kù)函數(shù)和用戶定義函數(shù)。?庫(kù)函數(shù)是指由ActionScript 3.0定義的函數(shù)。用戶
53、無(wú)須定義,只需在程序中直接使用函數(shù)。?用戶定義函數(shù)是指由用戶按需要自定義的函數(shù)。2函數(shù)返回值角度?有返回值函數(shù):此類函數(shù)被調(diào)用執(zhí)行完后將向調(diào)用者返回一個(gè)執(zhí)行結(jié)果,稱為函數(shù)返回值。7.1 函數(shù)概述?無(wú)返回值函數(shù):此類函數(shù)用于完成某項(xiàng)特定的處理任務(wù),執(zhí)行完成后不向調(diào)用者返回函數(shù)值。3函數(shù)數(shù)據(jù)傳送角度?無(wú)參函數(shù):函數(shù)定義、函數(shù)說(shuō)明及函數(shù)調(diào)用中均不帶參數(shù)。?有參函數(shù):也稱為帶參函數(shù)。在函數(shù)定義及函數(shù)說(shuō)明時(shí)都有參數(shù),稱為形式參數(shù)(簡(jiǎn)稱為形參)。 7.2 函數(shù)定義的一般形式函數(shù)按是否帶參數(shù)可分為無(wú)參函數(shù)和有參函數(shù)。因此函數(shù)定義的形式也分無(wú)參函數(shù)和有參函數(shù)兩種。兩者的定義差別只在于參數(shù)定義部分。7.2.1
54、無(wú)參函數(shù)的定義形式無(wú)參函數(shù)是指不帶有參數(shù)的函數(shù),通常用于一些簡(jiǎn)單的處理。類型標(biāo)識(shí)符指明了本函數(shù)的類型。函數(shù)名是由用戶定義的標(biāo)識(shí)符,函數(shù)名后有一個(gè)空括號(hào),其中無(wú)參數(shù),但括號(hào)不可少。“”中的內(nèi)容稱為函數(shù)體。7.2.2 有參函數(shù)的定義形式有參函數(shù)是指帶有參數(shù)的函數(shù)。在ActionScript 3.0中這種函數(shù)最為常見。7.3 函數(shù)的參數(shù)和函數(shù)的返回值函數(shù)的參數(shù)和函數(shù)的返回值是函數(shù)定義的最重要組成部分。函數(shù)的參數(shù)決定了主調(diào)函數(shù)應(yīng)傳遞哪些量給被調(diào)函數(shù)。函數(shù)的返回值決定了被調(diào)函數(shù)的返回類型和主調(diào)函數(shù)的值。7.3.1 形式參數(shù)和實(shí)際參數(shù)函數(shù)的形參和實(shí)參具有以下特點(diǎn):?形參變量只有在被調(diào)用時(shí)才分配內(nèi)存單元,在
55、調(diào)用結(jié)束時(shí),即刻釋放所分配的內(nèi)存單元。?實(shí)參可以是常量、變量、表達(dá)式、函數(shù)等。?實(shí)參和形參在數(shù)量上、類型上、順序上應(yīng)嚴(yán)格一致,否則會(huì)發(fā)生類型不匹配的錯(cuò)誤。?函數(shù)調(diào)用中發(fā)生的數(shù)據(jù)傳送是單向的,即只能把實(shí)參的值傳送給形參,而不能把形參的值反向地傳送給實(shí)參。7.3.2 函數(shù)的返回值1return語(yǔ)句返回函數(shù)值2返回值類型一致3返回空類型7.4 函數(shù)的調(diào)用函數(shù)在定義后可在多處調(diào)用。函數(shù)調(diào)用的方法是使用函數(shù)名,所以在同文件中函數(shù)名不能相同。7.4.1 函數(shù)調(diào)用的一般形式ActionScript 3.0語(yǔ)言中,實(shí)際參數(shù)表中的參數(shù)可以是常數(shù)、變量、其他構(gòu)造類型數(shù)據(jù)或表達(dá)式。各實(shí)參之間用逗號(hào)分隔。7.4.2
56、函數(shù)調(diào)用的方式在ActionScript 3.0語(yǔ)言中,可以用以下幾種方式調(diào)用函數(shù)。函數(shù)表達(dá)式:函數(shù)作為表達(dá)式中的一項(xiàng)出現(xiàn)在表達(dá)式中,以函數(shù)返回值參與表達(dá)式的運(yùn)算。函數(shù)語(yǔ)句:函數(shù)調(diào)用的一般形式加上分號(hào)即構(gòu)成函數(shù)語(yǔ)句。函數(shù)實(shí)參:函數(shù)作為另一個(gè)函數(shù)調(diào)用的實(shí)際參數(shù)出現(xiàn)。7.5 函數(shù)的嵌套調(diào)用ActionScript 3.0語(yǔ)言允許在一個(gè)函數(shù)的定義中出現(xiàn)對(duì)另一個(gè)函數(shù)的調(diào)用,這樣就形成了函數(shù)的嵌套調(diào)用,即在被調(diào)函數(shù)中又調(diào)用其他函數(shù)。7.6 函數(shù)的遞歸調(diào)用一個(gè)函數(shù)在它的函數(shù)體內(nèi)調(diào)用它自身稱為遞歸調(diào)用。ActionScript 3.0語(yǔ)言允許函數(shù)的遞歸調(diào)用。在遞歸調(diào)用中,主調(diào)函數(shù)又是被調(diào)函數(shù)。執(zhí)行遞歸函數(shù)將反復(fù)調(diào)用其自身,每調(diào)用一次就進(jìn)入新的一層。7.7 數(shù)組作為函數(shù)參數(shù)數(shù)組可以作為函數(shù)的參數(shù)使用,進(jìn)行數(shù)據(jù)傳送。數(shù)組用作函數(shù)參數(shù)有兩種形式:一種是把數(shù)組元素作為實(shí)參使用,另一種是把數(shù)組名作為函數(shù)的形參和實(shí)參使
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 智能環(huán)境監(jiān)測(cè)服務(wù)合同
- 挖機(jī)管溝合同協(xié)議書
- 彩圖供貨合同協(xié)議書
- 房屋燒毀維修協(xié)議書
- 放棄企業(yè)賠付協(xié)議書
- 房屋定向繼承協(xié)議書
- 房源轉(zhuǎn)讓合同協(xié)議書
- 房租維修合同協(xié)議書
- 店鋪投資合同協(xié)議書
- 房屋產(chǎn)權(quán)歸屬協(xié)議書
- 季節(jié)性防雷防汛防臺(tái)風(fēng)安全檢查表
- 歸檔文件目錄
- 2022年四川省綿陽(yáng)市中考英語(yǔ)試題及參考答案
- 防疫小組人員名單
- 眼部健康檢測(cè)與分析課件
- 偏心塊振動(dòng)式土壤夯實(shí)機(jī)的結(jié)構(gòu)設(shè)計(jì)說(shuō)明
- 蘇州市建設(shè)工程造價(jià)計(jì)價(jià)解釋
- 主題班會(huì)《堅(jiān)定信念--放飛理想》
- 煤礦機(jī)電設(shè)備春季預(yù)防性檢修計(jì)劃
- S771(一) 水力循環(huán)澄清池
- 高密度電法探測(cè)及數(shù)據(jù)處理解釋--答辯
評(píng)論
0/150
提交評(píng)論