




已閱讀5頁,還剩614頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
第1章Flex概述 Flex是Adobe公司推出的一系列工具和技術(shù) 使開發(fā)人員可以開發(fā)和部署可升級的富互聯(lián)網(wǎng)應(yīng)用程序 RIAs Flex提供了一種現(xiàn)代的 基于標(biāo)準(zhǔn)的語言來支持公共模板設(shè)計 客戶端運行環(huán)境 編程模型 開發(fā)模型和高級數(shù)據(jù)服務(wù) 富互聯(lián)網(wǎng)應(yīng)用程序 RIAs 是指像使用Web一樣的簡單方式來部署富客戶端程序 這種程序具有比HTML更加健壯 反應(yīng)更加靈敏和互動性更豐富的特點 1 1Flex簡介 傳統(tǒng)的基于HTML的應(yīng)用程序部署成本低 結(jié)構(gòu)簡單 簡單易學(xué) 很多用戶和開發(fā)人員于是放棄了現(xiàn)代高性能計算機能帶來的用戶體驗 轉(zhuǎn)而追求數(shù)據(jù)的快速訪問 從而喪失了一些重要的UI功能 RIA利用相對健壯的客戶端描述引擎 RIA的另一個好處是 數(shù)據(jù)能夠被緩存在客戶端 從而可以實現(xiàn)一個比基于HTML的響應(yīng)速度更快且數(shù)據(jù)往返于服務(wù)器的次數(shù)更少的用戶界面 Flex是Adobe公司近兩年推出的重量級產(chǎn)品與技術(shù) Flex的出現(xiàn)就是為了高效地開發(fā)和部署富互聯(lián)網(wǎng)應(yīng)用程序 1 1Flex簡介 Adobe公司對于Flex采取了開源的策略 所以開發(fā)者可以在Flex原代碼的基礎(chǔ)上修改 新版Flex4中的開發(fā)環(huán)境已經(jīng)更名為FlashBuilder 而不再是FlexBuilder系列 Flex采用事件驅(qū)動機制 程序的執(zhí)行過程嚴(yán)格按照事件發(fā)生的時間順序執(zhí)行 本節(jié)將介紹為讀者Flex開發(fā)技術(shù)的特點 優(yōu)點和新特性 1 1 1Flex的技術(shù)特點 Flex可以在企業(yè)內(nèi)部或在Web上創(chuàng)建富互聯(lián)網(wǎng)應(yīng)用程序 RIA 堪稱最完整 最強大的RIA開發(fā)解決方案 它使企業(yè)能夠創(chuàng)建個性化的豐富多媒體應(yīng)用程序 極大地提高用戶的體驗 徹底革新人與Web的交互關(guān)系 1 增強用戶體驗2 完善的開發(fā)環(huán)境3 通用的配置環(huán)境4 企業(yè)級的特征5 消除頁面加載6 標(biāo)準(zhǔn)的架構(gòu)7 與瀏覽器兼容 1 1 2FlexSDK4的新特性 Flex4較之Flex3有了許多令人興奮的新特性 1 新增主題和組件2 增強布局方式3 增強特效和濾鏡效果4 新增雙向綁定功能5 增強的CSS6 增強的HTML模板7 增強的狀態(tài)8 增強ASDoc的支持9 運行時共享庫10 本地化 1 2FlashBuilder的下載與安裝 FlashBuilder的安裝文件可從Adobe官方主頁下載 安裝文件版本有FlashBuilder4StandaloneInstaller版本和FlashBuilder4PluginforEclipse版本兩種 FlashBuilder4StandaloneInstaller是獨立的開發(fā)工具的版本 FlashBuilder4PluginforEclipse是可將Flex4集成于Eclipse的安裝插件 本節(jié)介紹FlashBuilder4StandaloneInstaller的下載與安裝 1 2 1安裝FlashBuilder的系統(tǒng)要求 FlashBuilder4可以安裝在Windows操作系統(tǒng)上 也可以安裝于MacOSX操作系統(tǒng)中 安裝FlashBuilder4的最低配置如下 1 Windows操作系統(tǒng)最低要求2 MacOSX操作系統(tǒng)最低要求 1 2 2下載FlashBuilderBeta 1 瀏覽器中輸入 1 2 3FlashBuilder4Beta的安裝 1 雙擊 FlashBuilder exe 彈出選擇安裝語言對話框 2 單擊 OK 按鈕 彈出安裝第一步驟 簡介 對話框 3 單擊 下一步 按鈕 彈出安裝第二步驟 許可協(xié)議 對話框 4 選擇 本人接受許可協(xié)議條款 單選框 單擊 下一步 按鈕 彈出安裝第三步驟 選擇安裝文件夾 對話框 1 2 3FlashBuilder4Beta的安裝 5 在文本框中輸入安裝路徑或是單擊 選擇 按鈕選擇安裝路徑 6 單擊 安裝 按鈕 完成安裝后自動彈出安裝第五步驟 安裝完畢 對話框 7 單擊 完成 按鈕 完成安裝 1 2 4FlashBuilder的新特性 1 新增工作流模式與FlashCatalyst的支持2 新增網(wǎng)絡(luò)監(jiān)控功能3 添加單元測試的支持4 新增ASDoc的支持5 自動生成getter和setter6 自動生成事件處理函數(shù)結(jié)構(gòu)7 增強調(diào)試器功能8 新增FlashCS4組件開發(fā)包9 導(dǎo)入和應(yīng)用諸多主題10 新增類包瀏覽器 1 3Flex基礎(chǔ)結(jié)構(gòu)MXML介紹 開發(fā)者使用兩種語言來寫Flex應(yīng)用程序 MXML和ActionScript MXML是一種XML標(biāo)識語言 用于進行組件布局 MXML中的組件包括了可視組件和非可視組件 非外觀組件可以是從服務(wù)器中讀取的數(shù)據(jù)源或用戶組件綁定至服務(wù)器中的數(shù)據(jù) 1 4建立第一個Flex4程序 下面以 HelloWorld 為第一個例子為讀者詳細(xì)說明如何建立第一個Flex4程序 步驟如下 1 選擇 文件 新建 Flex項目 命令 彈出 新建Flex項目 對話框 2 在 項目名 文本框中輸入項目名稱 應(yīng)用程序類型 下拉框選擇 Web runsinAdobeFlashPalyer 3 在 主應(yīng)用程序 文本框中輸入默認(rèn)項目啟動的文件名 其他可默認(rèn) 單擊 完成 按鈕 完成項目的創(chuàng)建 1 4建立第一個Flex4程序 4 在編輯工作區(qū)中單擊 Design 按鈕 進入設(shè)計模式 5 從左下角的 組件 列表 選擇 控件 子文件夾下的 標(biāo)簽 控件 拖動控件到設(shè)計模式工作區(qū) 6 選擇 標(biāo)簽 控件 然后在右下角的屬性工作區(qū)里設(shè)置 標(biāo)簽 控件的屬性 7 在代碼模式下 生成的MXML代碼 1 5編譯與運行第一個Flex4程序 前面建立了 HelloWorld 程序 編譯與運行程序的步驟如下 1 在想要成為程序默認(rèn)初始頁的mxml文件上右擊 選擇 設(shè)置為默認(rèn)應(yīng)用程序 2 菜單中選擇 運行 運行HelloWorld 命令 FlashBuilder4就開始編譯與運行程序 3 效果如圖1 19所示 1 6小結(jié) 本章對Flex進行了介紹 包括Flex技術(shù)特點 新特性和優(yōu)點 Flex應(yīng)用程序具有豐富的交互性 操作性和用戶體驗 能開發(fā)出與HTML更強大的網(wǎng)絡(luò)應(yīng)用程序 本章圖文并茂地講解了FlashBuilder4的下載與安裝 FlashBuilder4是Flex應(yīng)用程序開發(fā)的利器 能快速 有效地開發(fā)Flex應(yīng)用程序 有關(guān)FlashBuilder4的內(nèi)容將在下一章介紹 本章最后以 HelloWorld 為例 為讀者詳細(xì)講解了Flex應(yīng)用程序的開發(fā)編寫及編譯運行過程 第2章熟悉開發(fā)環(huán)境FlashBuilder4 工欲善其事必先利其器 FlashBuilder4是Adobe公司推出的集成開發(fā)環(huán)境 FlashBuilder4工作環(huán)境是一種具有豐富特征的開發(fā)環(huán)境 有利于開發(fā)者開發(fā)Flex和ActionScript應(yīng)用程序 FlashBuilder4建立在Eclipse這一開源的集成開發(fā)環(huán)境 IDE 上 用戶可使用強大的代碼編輯器 可視化設(shè)計器 調(diào)試工具等來開發(fā)Flex應(yīng)用程序 2 1熟悉FlashBuilder4工作區(qū) FlashBuilder4工作區(qū)是開發(fā)Flex應(yīng)用程序的工作環(huán)境 熟悉工作環(huán)境對開發(fā)的益處是顯而易見的 FlashBuilder4平臺是基于Eclipse平臺 因此與Eclipse的布局風(fēng)格異常相似 FlashBuilder4平臺的特點是集可視化編輯與代碼編輯為一體 用戶在FlashBuilder4環(huán)境下可方便地切換設(shè)計模式和代碼模式 2 1 1Perspectives 透視 透視是一種布局風(fēng)格 與任務(wù) 編輯器和視圖相關(guān)聯(lián) 一旦切換透視 對應(yīng)的任務(wù) 編輯器或視圖就可能發(fā)生改變 FlashBuilder4包含3種透視 Flash 透視 FlashDebug 透視以及 FlashProfile 透視 2 1 2Editors 編輯器 1 MXML編輯器2 ActionScript編輯器3 CSS編輯器 2 1 3Views 視圖 視圖是用以輔助用戶管理工程和開發(fā)項目 用戶通過視圖可以較直觀地處理一些需求 例如 包資源管理器 既可以管理工作區(qū)中的文件和文件夾 又可以瀏覽包和類的結(jié)構(gòu) 2 2編譯與運行Flex4程序詳解 MXML語言和ActionScript語言都是需要編譯后才能運行的 FlashBuilder4開發(fā)環(huán)境中集成了兩者的編譯器 用戶只需選擇相應(yīng)的編譯運行命令 本書在介紹第一個Flex程序 HelloWorld 程序時 簡單地介紹了了如何編譯與運行Flex應(yīng)用程序 事實上編譯時可選的參數(shù)較多 本節(jié)將為讀者介紹詳細(xì)的編譯與運行過程 仍以 HelloWorld 為例 講解編譯與運行過程中的可選參數(shù) 2 3調(diào)試Flex4程序 程序常包含不可知的邏輯錯誤 這些錯誤不屬于編譯錯誤 編譯器不能檢查此類錯誤 例如 程序中要判斷閏年 代碼的語法正確但判斷的方法是錯誤的 此時編譯器不會報錯 使用在調(diào)試功能能跟蹤代碼每一步的執(zhí)行 從而檢查邏輯錯誤 FlashBuilder4開發(fā)環(huán)境有強大的調(diào)試功能 有利于程序進行代碼檢查 本節(jié)介紹如何調(diào)試Flex應(yīng)用程序 包括添加斷點 開始調(diào)試 監(jiān)視變量等 2 3 1添加斷點 斷點的作用是使應(yīng)用程序在帶斷點的代碼行處中斷 從而開始檢查代碼 同時 用戶可使用FlashBuilder4自帶的調(diào)試工具檢測并修復(fù)錯誤 例如 變量視圖和表達(dá)式視圖 在代碼編輯器中添加斷點的方法很多 調(diào)試器只允許在以下代碼的斷點處中斷 MXML標(biāo)簽中包含ActionScript事件處理 如 其中 click 是單擊處理事件 ActionScript代碼中 可以是MXML文件中的標(biāo)簽下 也可以是ActionScript文件中 ActionScript文件中的任何代碼行 2 3 2調(diào)試程序 在設(shè)置完斷點后可選擇 運行 調(diào)試 命令 選擇相應(yīng)的運行配置開始調(diào)試 也可單擊工具欄上的按鈕或快捷鍵F11開始調(diào)試 調(diào)試器運行后就會自動進入 FlashDebug 透視 其中比較有用的是調(diào)試視圖 在調(diào)試程序時常需要監(jiān)視某些變量的變化 從而發(fā)現(xiàn)代碼中的錯誤 變量視圖能自動跟蹤程序中變量的變化 2 4Flex4項目工程概述 Flex4現(xiàn)支持創(chuàng)建的項目工程有三類 Flex項目 ActionScript項目 和Flex庫項目 不同的工程用于開發(fā)不同的項目 Flex項目工程是普通的RIA工程 主要用于開發(fā)互聯(lián)網(wǎng)應(yīng)用程序 ActionScript項目工程主要用于開發(fā)ActionScript類庫 Flex庫項目用于開發(fā)共享庫 可以是自定義組件 也可以是ActionScript代碼 2 4 1Flex項目 Flex項目是最基礎(chǔ)配置的工程 Flex項目包括兩種應(yīng)用程序類型 Web和Desktop 使用Flex框架 XML Webservices等來開發(fā)Flex應(yīng)用程序 Web應(yīng)用程序類型是在FlashBuilder4中編譯后會將可執(zhí)行文件 swf文件 放在HTML文件中 最終生成的是Web應(yīng)用程序 Desktop應(yīng)用程序類型是在FlashBuilder4中編譯后會將文件放在AIR平臺中 最終生成的是AIR應(yīng)用程序 2 4 2ActionScript項目 ActionScript項目使用的是FlashAPI 而不是Flex框架 ActionScript項目沒有可視化的表現(xiàn) 也就是說ActionScript應(yīng)用程序中沒有設(shè)計模式這樣的概念 ActionScript項目編譯后也可運行于FlashPlayer中 2 4 3Flex庫項目 Flex庫項目用以創(chuàng)建自定義的代碼庫 代碼庫可共享于應(yīng)用程序或是其他開發(fā)人員 Flex庫項目編譯后生成SWC文件 SWC文件包含組件 各種資源和catalog xml文件 SWC常被用于制作主題和制作應(yīng)用程序的外觀 一個SWC主題可以包括多個CSS文件和全部的圖片 動畫資源 2 5FlashBuilder4常用快捷鍵 快捷鍵的作用是使得開發(fā)工作更加高效和簡單 FlashBuilder4中提供了許多快捷鍵 用戶想要更多的快捷鍵說明 可選擇 幫助 鍵輔助 命令或 Shift Ctr L 快捷鍵查看 2 6使用Flex幫助 開發(fā)Flex應(yīng)用程序過程中難免會遇到困難 如對某一組件的某一屬性不清楚 此時也查看Flex幫助 在安裝FlashBuilder4后 自動安裝了Flex幫助 用戶可選擇 幫助 幫助內(nèi)容 命令打開Flex幫助 Flex幫助左下方的圖標(biāo)表示顯示全部內(nèi)容 圖標(biāo)表示顯示搜索結(jié)果 圖標(biāo)表示顯示鏈接 圖標(biāo)表示顯示書簽 單擊不同的圖標(biāo)會切換至不同的內(nèi)容 另外 用戶可在左上方的 搜索 輸入框中輸入要搜索的內(nèi)容 2 7小結(jié) FlashBuilder4是功能強大的集成開發(fā)環(huán)境 能高效地開發(fā)Flex應(yīng)用程序 本章主要介紹了FlashBuilder4的相關(guān)基礎(chǔ) 內(nèi)容包括熟悉FlashBuilder4工作區(qū) 如何編譯運行程序 如何調(diào)試程序 不同項目工程的作用 常用快捷鍵 Flex幫助的使用等 通過本章的學(xué)習(xí) 讀者會對FlashBuilder4的開發(fā)環(huán)境會有一個比較清楚的了解 第3章ActionScript3 0基礎(chǔ) ActionScript3 0是在FlashPlayer運行環(huán)境下的編程語言 是一種面向?qū)ο蟮恼Z言 在Flex工程中 使用ActionScript3 0語言作為編程語言 應(yīng)用程序的功能實現(xiàn)全部依賴于ActionScript3 0 3 1ActionScript3 0概述 ActionScript3 0是運行于FlashPlayer運行環(huán)境的編程語言 使用新的ActionScript虛擬機AVM2 AVM2使用新的二進制指令集 并在性能上有很大改進 同時 ActionScript3 0使用面向?qū)ο竽P?擴展和提高了應(yīng)用程序接口 ActionScript3 0代碼被FlexBuilder或Flash中的編譯器編譯成二進制數(shù)據(jù) 這種二進制數(shù)據(jù)被裝入SWF文件中 然后運行于FlashPlayer運行環(huán)境中 3 2使用ActionScript3 0 Flex工程中可有兩種方式使用ActionScript3 0代碼 一種是在MXML文件的標(biāo)簽下使用ActionScript3 0代碼 另一種是直接在AS文件中編寫ActionScript3 0代碼 3 2 1在MXML文件中直接編寫ActionScript3 0 在MXML文件中編寫ActionScript3 0代碼 只要在MXML文件下插入標(biāo)簽 在MXML文件中的標(biāo)簽下使用ActionScript3 0 在FlexBuilder3的編輯器中輸入標(biāo)簽會自動封閉 例如 輸入 后 自動生成封閉區(qū)域 3 2 2在AS文件中編寫ActionScript3 0 ActionScriptClass ActionScriptFile和ActionScriptInterface都屬于AS文件 它們?nèi)叩奈募袷蕉紴锳S格式 不同的只是其中的定義有所區(qū)別 Flex應(yīng)用程序中最常使用的AS文件是ActionScriptClass 也就類的定義 用戶可使用ActionScriptClass創(chuàng)建向?qū)硗瓿蓜?chuàng)建 3 2 3MXML中引用AS文件 MXML文件中若要引用AS文件有兩種方式 一種是引用使用標(biāo)簽中的 source 屬性 這種方式可看成是將MXML文件和AS文件分離 從而減小MXML文件的代碼 提高重用性 另外一種方法是引用ActionScriptClass 類 使用這種方法的前提是AS文件中定義的是一個類 3 3創(chuàng)建第一個ActionScript3 0應(yīng)用程序 用戶可以使用Flash FlexBuilder Dreamweaver等任何文本編輯器編寫ActionScript3 0代碼 as格式文件 1 設(shè)計ActionScript3 0應(yīng)用程序2 創(chuàng)建HelloWorld工程和Greeter類3 編寫Greeter類4 HelloWorld mxml文件中添加ActionScript3 0代碼5 編譯運行程序 3 4小結(jié) ActionScript3 0是Flex應(yīng)用程序中的編程語言 控制Flex應(yīng)用程序的執(zhí)行 完成應(yīng)用程序的各項功能 在Flex工程中使用ActionScript3 0有兩種方法 一種是在MXML文件的標(biāo)簽下 一種是在AS文件中 對于大型應(yīng)用程序來說 代碼與模型的分離能使得程序更簡潔 另外 將ActionScript3 0代碼寫入AS文件也提高了代碼的重用性 可以使用標(biāo)簽中的Source屬性來指明引用的AS文件 也可以使用引用類的方法來使用AS類 第4章數(shù)據(jù)類型 程序中使用的各種變量都應(yīng)預(yù)先加以定義 即先定義 后使用 對變量的定義可以包括三個方面 數(shù)據(jù)類型 存儲類型 作用域 數(shù)據(jù)類型表示了變量的性質(zhì) 表示形式 占據(jù)存儲空間等 在ActionScript3 0語言中 數(shù)據(jù)類型可分為 基本數(shù)據(jù)類型 其值不可以再分解為其他類型 復(fù)雜數(shù)據(jù)類型 復(fù)雜數(shù)據(jù)類型根據(jù)已定義的一個或多個數(shù)據(jù)類型定義 4 1常量與變量 對于基本數(shù)據(jù)類型量 按其取值是否可改變又分為常量和變量兩種 在程序執(zhí)行過程中 其值不發(fā)生改變的量稱為常量 其值可變的量稱為變量 常量和變量可與數(shù)據(jù)類型結(jié)合起來 如整型常量 整型變量 實型常量 實型變量 字符串常量 字符串變量 在程序中常量是可以不經(jīng)說明而直接引用的 而變量則必須先定義后使用 4 1 1直接常量和符號常量 1 直接常量整型常量 12 0 3 實型常量 4 6 1 23 字符串常量 adf b 2 符號常量符號常量是用標(biāo)識符代表一個常量 標(biāo)識符是用來標(biāo)識變量名 符號常量名 函數(shù)名 數(shù)組名 類型名 文件名的有效字符序列 4 1 2變量 程序中其值可以改變的量稱為變量 一個變量應(yīng)該有一個名字 在內(nèi)存中占據(jù)一定的存儲單元 變量定義必須放在變量使用之前 變量名和變量值是兩個不同的概念 變量名是指變量的名稱 用以區(qū)別不同的變量 變量值是指變量中包含的值 4 1 3變量賦初值 變量賦初值是指變量定義時就賦值給變量 也稱為變量初始化 4 1 4局部變量和全局變量 局部變量也稱為內(nèi)部變量 是在函數(shù)內(nèi)作定義說明的變量 其作用域僅限于函數(shù)內(nèi) 離開該函數(shù)后再使用這種變量就是非法的 主調(diào)函數(shù)中定義的變量也只能在主調(diào)函數(shù)中使用 不能在其他函數(shù)中使用 形參變量是屬于被調(diào)函數(shù)的局部變量 實參變量是屬于主調(diào)函數(shù)的局部變量 允許在不同的函數(shù)中使用相同的變量名 全局變量也稱為外部變量 是在函數(shù)外部定義的變量 4 1 5變量的存儲方式 變量的存儲方式按是否預(yù)先分配內(nèi)存空間 可分為動態(tài)存儲方式和靜態(tài)存儲方式 靜態(tài)存儲方式是指在程序運行期間分配固定的存儲空間方式 動態(tài)存儲方式是指在程序運行期間根據(jù)需要進行動態(tài)的分配存儲空間方式 用戶存儲空間可以分為3個部分 程序區(qū)靜態(tài)存儲區(qū)動態(tài)存儲區(qū)動態(tài)存儲區(qū)存放以下數(shù)據(jù) 函數(shù)形式參數(shù)自動變量 未加static聲明的局部變量 4 1 5變量的存儲方式 函數(shù)調(diào)用時的現(xiàn)場保護和返回地址對于以上這些數(shù)據(jù) 在函數(shù)開始調(diào)用時分配動態(tài)存儲空間 函數(shù)結(jié)束時釋放這些空間 有時用戶希望函數(shù)中的局部變量的值在函數(shù)調(diào)用結(jié)束后仍保留原值 這時就需要指定局部變量為靜態(tài)局部變量 使用用關(guān)鍵字static進行聲明 4 2整型數(shù)據(jù) 整型數(shù)據(jù)用以存儲整型量 如2 60等 整型數(shù)據(jù)可以是整型常量 也可以是整型變量 4 2 1整型常量 1 十進制整型常量2 八進制整型常量3 十六進制整型常量 4 2 2整型變量 1 整型變量的分類2 整型變量的定義3 整型數(shù)據(jù)的溢出 4 3實型數(shù)據(jù) 實型數(shù)據(jù)用以存儲實型量 ActionScript3 0中實型數(shù)據(jù)類型只有一種 Number型 實型數(shù)據(jù)可以是實型常量 也可以是實型變量 4 3 1實型常量的表示方法 1 十進制形式2 指數(shù)形式 4 3 2實型變量 1 實型數(shù)據(jù)在內(nèi)存中的存放形式2 實型變量的定義3 實型數(shù)據(jù)的舍入誤差 4 4字符串?dāng)?shù)據(jù) 字符串?dāng)?shù)據(jù)存儲字符串量 包括字符串常量和字符串變量 ActionScript3 0中字符串?dāng)?shù)據(jù)類型為 String型 4 4 1字符串常量 字符串常量是指存儲字符串的常量 由一對雙引號或單引號封閉的字符串序列 4 4 2轉(zhuǎn)義字符 轉(zhuǎn)義字符是一種特殊的字符常量 主要用來表示那些用一般字符不便于表示的控制代碼 轉(zhuǎn)義字符以反斜線 開頭 后跟一個或幾個字符 4 4 3字符串變量 字符串變量是指存儲字符串的變量 4 5各類型數(shù)據(jù)之間的轉(zhuǎn)換 變量的數(shù)據(jù)類型是可以轉(zhuǎn)換的 轉(zhuǎn)換的方法有兩種 一種是自動轉(zhuǎn)換 一種是強制轉(zhuǎn)換 4 5 1自動類型轉(zhuǎn)換 自動轉(zhuǎn)換遵循以下規(guī)則 1 若參與運算量的類型不同 則先轉(zhuǎn)換成同一類型 然后進行運算 2 轉(zhuǎn)換按數(shù)據(jù)長度增加的方向進行 以保證精度不降低 3 在賦值運算中 賦值號兩邊量的數(shù)據(jù)類型不同時 賦值號右邊量的類型將轉(zhuǎn)換為左邊量的類型 4 5 2強制類型轉(zhuǎn)換 強制類型轉(zhuǎn)換把表達(dá)式的運算結(jié)果強制轉(zhuǎn)換成某種數(shù)據(jù)類型 在使用強制轉(zhuǎn)換時應(yīng)注意以下問題 1 括號所處的位置要正確 2 無論是強制轉(zhuǎn)換或是自動轉(zhuǎn)換 都只是為了本次運算的需要而對變量的數(shù)據(jù)長度進行的臨時性轉(zhuǎn)換 而不改變數(shù)據(jù)說明時對該變量定義的類型 4 6小結(jié) ActionScript3 0中的數(shù)據(jù)類型分為基本數(shù)據(jù)類型和復(fù)雜數(shù)據(jù)類型 本章詳細(xì)介紹了整型 實型 字符串型 根據(jù)數(shù)據(jù)是否是變量或常量 基本數(shù)據(jù)又可分為整型常量 整型變量 實型常量 實型變量 字符串常量 字符串變量 各數(shù)據(jù)類型間可進行轉(zhuǎn)換 轉(zhuǎn)換的方式有自動轉(zhuǎn)換和強制轉(zhuǎn)換兩種 自動轉(zhuǎn)換由編譯器自動完成 強制轉(zhuǎn)換由用戶確定轉(zhuǎn)換的方向 第5章運算符和表達(dá)式 ActionScript3 0語言中運算符和表達(dá)式很多 豐富的運算符和表達(dá)式使得ActionScript3 0語言功能強大 ActionScript3 0語言的運算符不僅具有不同的優(yōu)先級 而且還有一個特點 就是它的結(jié)合性 在表達(dá)式中 各運算量參與運算的先后順序不僅要遵守運算符優(yōu)先級別的規(guī)定 還要受運算符結(jié)合性的制約 到底是自左向右進行運算還是自右向左進行運算 這種結(jié)合性增加了ActionScript3 0語言的復(fù)雜性 5 1ActionScript3 0運算符簡介 ActionScript3 0語言的運算符可分為以下幾類 算術(shù)運算符用于各類數(shù)值運算 包括加 減 乘 除 求余 自增 自減 共7種 關(guān)系運算符用于比較運算 包括大于 小于 小于等于 共6種 5 1ActionScript3 0運算符簡介 特殊運算符 如括號 下標(biāo) 取XML屬性 等 賦值運算符用于賦值運算 分為簡單賦值 復(fù)合算術(shù)賦值 和復(fù)合位運算賦值 3類 共11種 條件運算符用于條件求值 運算符為 逗號運算符用于把若干表達(dá)式組合成一個表達(dá)式 運算符為 5 2算術(shù)運算符和算術(shù)表達(dá)式 算術(shù)運算符是用來進行算術(shù)運算的操作符 是ActionScript3 0中最基本的運算符 使用算術(shù)運算符連接的表達(dá)式稱為算術(shù)表達(dá)式 5 2 1基本的算術(shù)運算符 基本的算術(shù)運算符包括 加法運算符 加法運算符為雙目運算符 表示兩個量相加 具有右結(jié)合性 減法運算符 減法運算符為雙目運算符 表示兩個量相減運算 具有右結(jié)合性 乘法運算符 乘法運算符為雙目運算 表示兩個量相乘 具有左結(jié)合性 除法運算符 除法運算符為雙目運算 表示兩個量相除 具有左結(jié)合性 求余運算符 求余運算符為雙目運算 表示兩個量相除求余數(shù) 具有左結(jié)合性 5 2 2算術(shù)表達(dá)式 算術(shù)表達(dá)式是用算術(shù)運算符和括號將運算對象 也稱操作數(shù) 連接起來的 符合ActionScript3 0語法規(guī)則的式子 5 2 3運算符的優(yōu)先級和結(jié)合性 ActionScript3 0語言中 運算符的運算優(yōu)先級共分為15級 1級最高 15級最低 在表達(dá)式中 優(yōu)先級較高的先于優(yōu)先級較低的進行運算 若兩個運算符優(yōu)先級相同 按運算符的結(jié)合性所規(guī)定的方向處理 ActionScript3 0語言中各運算符的結(jié)合性有兩種 左結(jié)合性 自左至右 和右結(jié)合性 自右至左 5 2 4自增 自減運算符 自增運算符和自減運算符為單目運算 只對一個變量操作運算 可有以下4種形式 i i自增1后再參與其他運算 i i自減1后再參與其他運算 i i參與運算后 i的值再自增1 i i參與運算后 i的值再自減1 5 3關(guān)系運算符和關(guān)系表達(dá)式 關(guān)系運算符是用來對兩個量之間的關(guān)系進行運算的操作符 使用關(guān)系運算符連接的表達(dá)式稱為關(guān)系表達(dá)式 5 3 1關(guān)系運算符 在ActionScript3 0語言中有以下關(guān)系運算符 大于 大于或等于 等于 不等于 5 3 2關(guān)系表達(dá)式 關(guān)系表達(dá)式使用關(guān)系運算符連接其他對象 由于表達(dá)式可以又是關(guān)系表達(dá)式 就會出現(xiàn)嵌套的情況 關(guān)系表達(dá)式的值是真 和 假 分別用 1 和 0 表示 5 4邏輯運算符和邏輯表達(dá)式 邏輯運算符是用來進行邏輯運算的操作符 包括與 或 非運算 使用邏輯運算符連接的表達(dá)式稱為邏輯表達(dá)式 5 4 1邏輯運算符 ActionScript3 0語言中提供了三種邏輯運算符 與運算 或運算 非運算與運算符 和或運算符 均為雙目運算符 具有左結(jié)合性 非運算符 為單目運算符 具有右結(jié)合性 5 4 2邏輯運算的值 邏輯運算的值只有 真 和 假 兩種 可用 1 和 0 來表示 求值規(guī)則如下 與運算 參與運算的兩個量都為真時 結(jié)果才為真 否則為假 或運算 參與運算的兩個量只要有一個為真 結(jié)果就為真 兩個量都為假時 結(jié)果為假 以下代碼說明與運算規(guī)則 非運算 參與運算的量為真時 結(jié)果為假 參與運算量為假時 結(jié)果為真 5 4 3邏輯表達(dá)式 使用邏輯運算符連接式子就得到邏輯表達(dá)式 其中的表達(dá)式可以又是邏輯表達(dá)式 從而組成了嵌套的情形 5 5賦值運算符和賦值表達(dá)式 賦值運算符包括簡單的賦值運算符 和復(fù)合賦值運算符 如 等 使用賦值運算符連接的表達(dá)式稱為賦值表達(dá)式 5 5 1簡單賦值運算符和簡單賦值表達(dá)式 簡單賦值運算符為 由 連接的式子稱為賦值表達(dá)式 賦值運算符 具有右結(jié)合性 5 5 2復(fù)合賦值運算符和復(fù)合賦值表達(dá)式 在賦值符 之前加上其他二目運算符可構(gòu)成復(fù)合賦值符 如 5 6逗號運算符和逗號表達(dá)式 在ActionScript3 0語言中逗號 也是一種運算符 稱為逗號運算符 其功能是把兩個表達(dá)式連接起來組成一個表達(dá)式 稱為逗號表達(dá)式 逗號表達(dá)式可以嵌套 即表達(dá)式1或表達(dá)式2又是逗號表達(dá)式 整個逗號表達(dá)式的值等于表達(dá)式n的值 并不是在所有出現(xiàn)逗號的地方都組成逗號表達(dá)式 5 7位運算符 位運算指對二進制數(shù)的位進行運算 ActionScript3 0語言提供了6種位運算符 按位與 按位或 按位異或 取反 右移 5 7位運算符 1 按位與運算2 按位或運算3 按位異或運算4 求反運算5 左移運算6 右移運算 5 8小結(jié) ActionScript3 0中定義了許多運算符 這使得ActionScript3 0語言具有強大的運算能力 運算表達(dá)式是由運算符連接起來的式子 其運算方式及結(jié)果與運算符的特性緊密相關(guān) 本章主要介紹了算術(shù)運算符 關(guān)系運算符 邏輯運算符 賦值運算符和位運算符 算術(shù)運算符中詳細(xì)介紹了各種基本的算術(shù)運算符 逗號表達(dá)式及自增 自減運算符 關(guān)系運算符用以比較兩個量之間的關(guān)系 邏輯運算符中包括與 或 非運算符 賦值運算符包括簡單的賦值運算符 和復(fù)合賦值運算符 位運算符中介紹了6種位運算符的特點及使用方法 第6章程序設(shè)計的基本結(jié)構(gòu) 從程序流程的角度來看 程序可以分為三種基本結(jié)構(gòu) 順序結(jié)構(gòu) 分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu) 這3種基本結(jié)構(gòu)可以組成所有的各種復(fù)雜程序 程序設(shè)計的基本組成部分是語句 不同語句組成不同的程序結(jié)構(gòu) 例如 for語句 while語句組成循環(huán)結(jié)構(gòu)程序 6 1順序結(jié)構(gòu)程序設(shè)計 順序結(jié)構(gòu)程序是指程序中的語句由表達(dá)式語句 函數(shù)調(diào)用語句 控制語句 復(fù)合語句 空語句或賦值語句構(gòu)成 順序結(jié)構(gòu)是程序中最基本的結(jié)構(gòu)之一 最大的特點是程序是以從上至下的順序執(zhí)行 6 1 1表達(dá)式語句 表達(dá)式語句是最基本的語句 由表達(dá)式加上分號 組成 6 1 2函數(shù)調(diào)用語句 由函數(shù)名 實際參數(shù)加上分號 組成 執(zhí)行函數(shù)語句就是調(diào)用函數(shù)體并把實際參數(shù)賦予函數(shù)定義中的形式參數(shù) 然后執(zhí)行被調(diào)函數(shù)體中的語句 求取函數(shù)值 在后面函數(shù)中再詳細(xì)介紹 6 1 3復(fù)合語句 把多個語句用括號 括起來組成的一個語句稱復(fù)合語句 在程序中應(yīng)把復(fù)合語句看成是單條語句 而不是多條語句 復(fù)合語句內(nèi)的各條語句都必須以分號 結(jié)尾 在括號 外不能加分號 6 1 4空語句 只有分號 組成的語句稱為空語句 空語句是什么也不執(zhí)行的語句 在程序中空語句可用來作空循環(huán)體 6 1 5賦值語句 賦值語句是由賦值表達(dá)式再加上分號 構(gòu)成 賦值語句的功能和特點都與賦值表達(dá)式相同 它是程序中使用最多的語句之一 在賦值語句的使用中需要注意以下幾點 1 表達(dá)式嵌套2 變量賦初值與賦值語句的區(qū)別3 賦值表達(dá)式與賦值語句的區(qū)別 6 2分支結(jié)構(gòu)程序設(shè)計 分支結(jié)構(gòu)程序是指程序中存在分支的邏輯 需要分別處理各分支的邏輯 分支結(jié)構(gòu)程序常用的語句有 if語句 if else語句 if else if語句 switch語句 分支結(jié)構(gòu)是程序中最基本的結(jié)構(gòu)之一 最大的特點是程序是分支處理 6 2 1if語句 if語句語義是 如果表達(dá)式的值為真 則執(zhí)行其后的語句 否則不執(zhí)行該語句 以下代碼使用if語句實現(xiàn)取最大值 6 2 2if else語句 if else語句語義是 如果表達(dá)式的值為真 則執(zhí)行語句1 否則執(zhí)行語句2 6 2 3if else if語句 在使用if語句中還應(yīng)注意以下問題 1 表達(dá)式形式的多樣性2 if語句格式3 if語句中使用復(fù)合語句 6 2 4if語句的嵌套 當(dāng)if語句中的執(zhí)行語句又是if語句時 就構(gòu)成了if語句嵌套的情形 在嵌套內(nèi)的if語句可能又是if else語句 這將會出現(xiàn)多個if關(guān)鍵字和多個else關(guān)鍵字的情況 這時要特別注意if和else的配對問題 6 2 5switch語句 ActionScript3 0語言還提供了另一種用于多分支選擇的語句 switch語句 switch語句的意思是 計算表達(dá)式的值 并逐個與其后的常量表達(dá)式值相比較 當(dāng)表達(dá)式的值與某個常量表達(dá)式的值相等時 即執(zhí)行其后的語句 然后不再進行判斷 繼續(xù)執(zhí)行后面所有case后的語句 若表達(dá)式的值與所有case后的常量表達(dá)式均不相同時 則執(zhí)行default后的語句 6 3循環(huán)結(jié)構(gòu)程序設(shè)計 循環(huán)結(jié)構(gòu)是程序中一種很重要的結(jié)構(gòu) 其特點是 在給定條件成立時 反復(fù)執(zhí)行某程序段 直到條件不成立為止 給定的條件稱為循環(huán)條件 反復(fù)執(zhí)行的程序段稱為循環(huán)體用goto語句和if語句構(gòu)成循環(huán) while語句 do while語句 for語句 6 3 1goto語句 goto語句是一種無條件轉(zhuǎn)移語句 goto語句一般不用 因為它將使程序?qū)哟尾磺?且程序不易讀 但在多層嵌套退出時 用goto語句則比較合理 6 3 2while語句 while語句中的表達(dá)式是循環(huán)條件 語句為循環(huán)體 while語句的語義是 計算表達(dá)式的值 當(dāng)值為真 非0 時 執(zhí)行循環(huán)體語句 6 3 3do while語句 do while語句與while語句的不同在于 do while語句先執(zhí)行循環(huán)中的語句 然后再判斷表達(dá)式 6 3 4for語句 在ActionScript3 0語言中 for語句使用最為靈活 它完全可以取代while語句 for語句的執(zhí)行過程如下 1 求解表達(dá)式1 2 求解表達(dá)式2 若其值為真 非0 則執(zhí)行for語句中指定的內(nèi)嵌語句 然后執(zhí)行下面第3步 若其值為假 0 則結(jié)束循環(huán) 轉(zhuǎn)到第5步 3 求解表達(dá)式3 4 轉(zhuǎn)回上面第2步繼續(xù)執(zhí)行 6 3 4for語句 5 循環(huán)結(jié)束 執(zhí)行for語句下面的一個語句 1 表達(dá)式省略2 表達(dá)式1的多樣性3 使用逗號表達(dá)式 6 3 5循環(huán)的嵌套 循環(huán)體語句中可以又是循環(huán)語句 這樣就形成了循環(huán)的嵌套 例如 for語句的循環(huán)體語句中又包括for語句 層層嵌套的循環(huán)在程序中經(jīng)常見到 但一般嵌套的次數(shù)不宜超過5次 因為這樣會使程序的可讀性和執(zhí)行效率變差 6 3 6幾種循環(huán)語句的比較 四種循環(huán)語句都可以用來處理同一個問題 一般可以互相代替 其中for語句功能最強大 goto語句盡量少使用 while語句和do while語句的循環(huán)體語句中應(yīng)包括使循環(huán)趨于結(jié)束的語句 從而避免死循環(huán) 用while語句和do while語句時 循環(huán)變量初始化的操作應(yīng)在while和do while語句之前完成 而for語句可以在表達(dá)式1中實現(xiàn)循環(huán)變量的初始化 6 3 7break語句 break語句通常用在循環(huán)語句和開關(guān)語句中 當(dāng)break語句用于do while語句 for語句或while語句中時 可使程序終止循環(huán)而執(zhí)行循環(huán)后面的語句 break語句一般總是與if語句聯(lián)合使用 即滿足條件時便跳出循環(huán) 使用break語句應(yīng)注意的地方包括 break語句對if else的條件語句不起作用 在多層循環(huán)中 一個break語句只向外跳一層 6 3 8continue語句 continue語句的作用是跳過循環(huán)體中剩余的語句而強行執(zhí)行下一次循環(huán) continue語句只用在for語句 while語句或do while語句中 常與if語句一起使用 用以加速循環(huán) 6 4小結(jié) 與其他大部分程序一樣 ActionScript3 0語言中的基本結(jié)構(gòu)也包括順序結(jié)構(gòu) 分支結(jié)構(gòu) 循環(huán)結(jié)構(gòu) 順序結(jié)構(gòu)程序由表達(dá)式語句 函數(shù)調(diào)用語句 復(fù)合語句 空語句 賦值語句組成 其特點是程序按順序執(zhí)行 分支結(jié)構(gòu)程序中有不同的邏輯分支 需要分別處理 分支結(jié)構(gòu)程序可使用if語句 if else語句 if else if語句 switch語句來實現(xiàn)分支處理 循環(huán)結(jié)構(gòu)程序中當(dāng)循環(huán)條件成立時 程序執(zhí)行循環(huán)體中的語句 直至循環(huán)條件不成立 循環(huán)結(jié)構(gòu)程序可使用while語句 do while語句 for語句來實現(xiàn)循環(huán) 其中for語句功能最為強大 break語句和continue語句可分別用于退出循環(huán)和加速循環(huán) 第7章函數(shù) 函數(shù)是ActionScript3 0源程序的基本模塊 通過對函數(shù)模塊的調(diào)用實現(xiàn)特定的功能 ActionScript3 0語言不僅提供了極為豐富的庫函數(shù) 還允許用戶建立自己定義的函數(shù) 用戶可把算法編成一個個相對獨立的函數(shù)模塊 然后通用調(diào)用來使用函數(shù) 可以說ActionScript3 0程序的大部分工作都是由各式各樣的函數(shù)完成的 7 1函數(shù)概述 1 函數(shù)定義角度從函數(shù)定義的角度看 函數(shù)可分為庫函數(shù)和用戶定義函數(shù) 庫函數(shù)是指由ActionScript3 0定義的函數(shù) 用戶無須定義 只需在程序中直接使用函數(shù) 用戶定義函數(shù)是指由用戶按需要自定義的函數(shù) 2 函數(shù)返回值角度有返回值函數(shù) 此類函數(shù)被調(diào)用執(zhí)行完后將向調(diào)用者返回一個執(zhí)行結(jié)果 稱為函數(shù)返回值 7 1函數(shù)概述 無返回值函數(shù) 此類函數(shù)用于完成某項特定的處理任務(wù) 執(zhí)行完成后不向調(diào)用者返回函數(shù)值 3 函數(shù)數(shù)據(jù)傳送角度無參函數(shù) 函數(shù)定義 函數(shù)說明及函數(shù)調(diào)用中均不帶參數(shù) 有參函數(shù) 也稱為帶參函數(shù) 在函數(shù)定義及函數(shù)說明時都有參數(shù) 稱為形式參數(shù) 簡稱為形參 7 2函數(shù)定義的一般形式 函數(shù)按是否帶參數(shù)可分為無參函數(shù)和有參函數(shù) 因此函數(shù)定義的形式也分無參函數(shù)和有參函數(shù)兩種 兩者的定義差別只在于參數(shù)定義部分 7 2 1無參函數(shù)的定義形式 無參函數(shù)是指不帶有參數(shù)的函數(shù) 通常用于一些簡單的處理 類型標(biāo)識符指明了本函數(shù)的類型 函數(shù)名是由用戶定義的標(biāo)識符 函數(shù)名后有一個空括號 其中無參數(shù) 但括號不可少 中的內(nèi)容稱為函數(shù)體 7 2 2有參函數(shù)的定義形式 有參函數(shù)是指帶有參數(shù)的函數(shù) 在ActionScript3 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ù)的形參和實參具有以下特點 形參變量只有在被調(diào)用時才分配內(nèi)存單元 在調(diào)用結(jié)束時 即刻釋放所分配的內(nèi)存單元 實參可以是常量 變量 表達(dá)式 函數(shù)等 實參和形參在數(shù)量上 類型上 順序上應(yīng)嚴(yán)格一致 否則會發(fā)生類型不匹配的錯誤 函數(shù)調(diào)用中發(fā)生的數(shù)據(jù)傳送是單向的 即只能把實參的值傳送給形參 而不能把形參的值反向地傳送給實參 7 3 2函數(shù)的返回值 1 return語句返回函數(shù)值2 返回值類型一致3 返回空類型 7 4函數(shù)的調(diào)用 函數(shù)在定義后可在多處調(diào)用 函數(shù)調(diào)用的方法是使用函數(shù)名 所以在同文件中函數(shù)名不能相同 7 4 1函數(shù)調(diào)用的一般形式 ActionScript3 0語言中 實際參數(shù)表中的參數(shù)可以是常數(shù) 變量 其他構(gòu)造類型數(shù)據(jù)或表達(dá)式 各實參之間用逗號分隔 7 4 2函數(shù)調(diào)用的方式 在ActionScript3 0語言中 可以用以下幾種方式調(diào)用函數(shù) 函數(shù)表達(dá)式 函數(shù)作為表達(dá)式中的一項出現(xiàn)在表達(dá)式中 以函數(shù)返回值參與表達(dá)式的運算 函數(shù)語句 函數(shù)調(diào)用的一般形式加上分號即構(gòu)成函數(shù)語句 函數(shù)實參 函數(shù)作為另一個函數(shù)調(diào)用的實際參數(shù)出現(xiàn) 7 5函數(shù)的嵌套調(diào)用 ActionScript3 0語言允許在一個函數(shù)的定義中出現(xiàn)對另一個函數(shù)的調(diào)用 這樣就形成了函數(shù)的嵌套調(diào)用 即在被調(diào)函數(shù)中又調(diào)用其他函數(shù) 7 6函數(shù)的遞歸調(diào)用 一個函數(shù)在它的函數(shù)體內(nèi)調(diào)用它自身稱為遞歸調(diào)用 ActionScript3 0語言允許函數(shù)的遞歸調(diào)用 在遞歸調(diào)用中 主調(diào)函數(shù)又是被調(diào)函數(shù) 執(zhí)行遞歸函數(shù)將反復(fù)調(diào)用其自身 每調(diào)用一次就進入新的一層 7 7數(shù)組作為函數(shù)參數(shù) 數(shù)組可以作為函數(shù)的參數(shù)使用 進行數(shù)據(jù)傳送 數(shù)組用作函數(shù)參數(shù)有兩種形式 一種是把數(shù)組元素作為實參使用 另一種是把數(shù)組名作為函數(shù)的形參和實參使用 7 7 1數(shù)組元素作為函數(shù)實參 數(shù)組元素也稱下標(biāo)變量 是數(shù)組中的某一項值 因此使用數(shù)組元素作為函數(shù)參數(shù)與使用普通變量作為函數(shù)參數(shù)并無區(qū)別 只是在發(fā)生函數(shù)調(diào)用時 把數(shù)組元素作為函數(shù)的實參傳遞給形參 7 7 2數(shù)組名作為函數(shù)參數(shù) 以數(shù)組名作為函數(shù)參數(shù)是指將數(shù)組的首地址作為參數(shù)傳遞給形參 函數(shù)形參根據(jù)數(shù)組的首地址就能在內(nèi)存中找到數(shù)組的存儲空間 用數(shù)組名作函數(shù)參數(shù)時 要求形參和相對應(yīng)的實參都必須是類型相同的數(shù)組 7 8小結(jié) 函數(shù)是ActionScript3 0語言中的重要組成部分 函數(shù)根據(jù)是否帶參分為無參函數(shù)和有參函數(shù) 函數(shù)的參數(shù)分為實參和形參兩種 其中 實參是指主調(diào)函數(shù)中的參數(shù) 形參是指被調(diào)函數(shù)中的參數(shù) 實參和形參在內(nèi)存空間里是兩個完全不同的量 因此即使實參與形參定義了相同的名稱也不會相互影響 第8章面向?qū)ο蠡A(chǔ) 客觀世界中任何一個事物都可以看成一個對象 客觀世界是由千千萬萬個對象組成 對象間通過一定的渠道相互聯(lián)系 從計算機的角度看 一個對象應(yīng)該包括兩個要素 數(shù)據(jù)和操作 對象就是一個包含數(shù)據(jù)以及與這 8 1類和對象 客觀世界中每一個實體都是對象 在ActionScript3 0中對象的類型稱為類 class 類代表了某一對象的共性和特征 可以說類是對象的抽象 而對象是類的具體實例 在ActionScript3 0中先聲明一個類 然后用類去定義若干個同類型的對象 用戶可將類看成是一種數(shù)據(jù)類型 對象是這種數(shù)據(jù)類型的變量 8 1 1類的定義形式 在ActionScript3 0中定義一個類就是要定義類的成員都數(shù)據(jù)和成員函數(shù) 8 1 2類的成員類型 類的成員類型包括三大類 一類是私有 private 即外界不能調(diào)用 一類是公有 public 即外界可以調(diào)用 一類是受保護 protected 此內(nèi)容將在后面小節(jié)中介紹 8 1 3調(diào)用類中的成員 類中的成員只有指明類型為public后 外界才能調(diào)用 外界可以調(diào)用類中的公有成員數(shù)據(jù)和公有成員函數(shù) 在調(diào)用類的成員之前需要實例化類 即創(chuàng)建類的對象 因為類中成員只有在創(chuàng)建類的對象時 才會在內(nèi)存中分配空間 8 2構(gòu)造函數(shù)和析構(gòu)函數(shù) 類定義中一般都有兩個基本的成員函數(shù) 構(gòu)造函數(shù)和析構(gòu)函數(shù) 構(gòu)造函數(shù)一般用于在類對象創(chuàng)建時初始化成員數(shù)據(jù) 析構(gòu)函數(shù)一般用于在類對象清除時釋放成員所占的內(nèi)存空間 在ActionScript3 0的類定義中構(gòu)造函數(shù)和析構(gòu)函數(shù)都可缺省 但語言中有默認(rèn)的 不可見的構(gòu)造函數(shù)和析構(gòu)函數(shù) 在類定義中構(gòu)造函數(shù)還是非常常用的 因為用戶經(jīng)常需要初始化成員數(shù)據(jù) 而默認(rèn)的構(gòu)造函數(shù)不初始化任何成員數(shù)據(jù) 8 2 1構(gòu)造函數(shù) 構(gòu)造函數(shù)用在在類對象創(chuàng)建時執(zhí)行 一般用于成員數(shù)據(jù)的初始化 構(gòu)造函數(shù)與其他成員不同 不需要用戶發(fā)命令來激活它 在創(chuàng)建類的對象時自動執(zhí)行 構(gòu)造函數(shù)可用戶自定義 但構(gòu)造函數(shù)名稱與類名必須一致 以便系統(tǒng)能識別其為構(gòu)造函數(shù) 8 2 2析構(gòu)函數(shù) 析構(gòu)函數(shù)與構(gòu)造函數(shù)正好相反 當(dāng)類對象清除時自動執(zhí)行析構(gòu)函數(shù) 析構(gòu)函數(shù)往往用來做釋放類對象的內(nèi)存空間 析構(gòu)函數(shù)名也與類名相同 只是在函數(shù)名前面加一個波浪符 以區(qū)別于構(gòu)造函數(shù) 析構(gòu)函數(shù)不帶任何參數(shù) 也沒有返回值 包括void類型 一個類中只能有一個析構(gòu)函數(shù) 如果用戶沒有編寫析構(gòu)函數(shù) 編譯系統(tǒng)會自動生成一個默認(rèn)的析構(gòu)函數(shù) 但這個析構(gòu)函數(shù)不進行任何操作 所以許多簡單的類中沒有顯式的析構(gòu)函數(shù) 8 3繼承與派生 面向?qū)ο蠹夹g(shù)強調(diào)程序的可重用性 在ActionScript3 0中可重用性是通過繼承機制來實現(xiàn) 繼承是一種類的重用技術(shù) 用戶創(chuàng)建新的類可以基于某一基礎(chǔ)類 從而充分利用了已有資源 已存在的類稱為基類或父類 通過繼承而新生成的類稱為派生類或子類 派生類繼承了基類的所有數(shù)據(jù)成員和成員函數(shù) 并增加了新的成員 8 3 1派生類定義的一般形式 派生類繼承了基類的全部成員 使用extends關(guān)鍵字表示此類是某類的派生類 派生類由于繼承了基類 所以包括基類成員和其新增的成員 8 3 2派生類的保護成員 protected關(guān)鍵字和private public一樣是用來聲明成員的引用權(quán)限的 由protected聲明的成員稱為保護成員 保護成員不能被外界引用 這點和私有成員相同 但可以被派生類的成員函數(shù)引用 所以如果想在派生類引用基類的成員 可以將基類的成員聲明為protected 8 3 3派生類的構(gòu)造函數(shù) 派生類從基類繼承了非私有成員函數(shù)和數(shù)據(jù)成員 但是在建立派生類的對象時 系統(tǒng)只執(zhí)行派生類的構(gòu)造函數(shù) 而不會自動執(zhí)行基類的構(gòu)造函數(shù) 也就是說 基類的構(gòu)造函數(shù)是不能繼承的 如果基類的構(gòu)造函數(shù)包含對變量的初始化 那么在建立派生類的對象時 由于沒有執(zhí)行基類的構(gòu)造函就會使基類的變量未初始化 8 4接口 在大型程序設(shè)計初期開發(fā)者往往不需要思考具體的邏輯過程 比如做菜 先想好要買哪些原料 大致采取怎樣的做法 是煮 蒸或是炸 不用去思考味精放多少 要燒多久等瑣碎的事情 這樣做的好處是能整體把握程序設(shè)計 避免陷入代碼實現(xiàn)誤區(qū) ActionScript3 0語言提供接口的概念 接口是包含一組虛方法的抽象類型 其中每一種方法都有其名稱 參數(shù)和返回值 接口方法中不包含任何實現(xiàn) 只定義了有哪些方法 然后通過類來實現(xiàn)接口 一個類可以實現(xiàn)多個接口 8 4 1創(chuàng)建接口 在FlexBuilder3中創(chuàng)建接口的方法與創(chuàng)建類的方法類似 執(zhí)行 File New ActionScriptInterface 命令 彈出新建接口向?qū)?8 4 2使用類實現(xiàn)接口 接口定義了抽象的方法 但沒有方法的具體實現(xiàn) 接口方法的具體實現(xiàn)可在類中完成 ICommand接口中定義了excute抽象方法 GetEngCaptionCommand類實現(xiàn)了接口中的excute方法 實現(xiàn)接口的類中一定要包括接口中全部方法的實現(xiàn) 上述ICommand接口中只有一個execute方法待實現(xiàn) 所以類中只實現(xiàn)了execute 若Command接口中有更多方法 類都需要一一實現(xiàn)方法 用戶不能調(diào)用接口中方法 而且這樣做也沒有意義 因為接口不提供方法的具體實現(xiàn) 使用類實現(xiàn)接口后 用
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 汽車展會活動授權(quán)及運營合同
- 旅游線路策劃合作協(xié)議
- 車輛掛靠與汽車維修保養(yǎng)服務(wù)協(xié)議
- 綠色能源項目廠房抵押貸款協(xié)議
- 禮儀儀態(tài)培訓(xùn)標(biāo)準(zhǔn)體系
- 2025年汽車銷售協(xié)議
- 2025年農(nóng)村房屋轉(zhuǎn)讓協(xié)議書
- 2025年明股實債協(xié)議
- 腎上腺腫瘤病人的護理
- 2025年江蘇省鎮(zhèn)江市新區(qū)中考數(shù)學(xué)二模試卷
- 社區(qū)工作者經(jīng)典備考題庫(必背300題)
- 中職《PLC技術(shù)與應(yīng)用》期末考試試卷
- 安全生產(chǎn)標(biāo)準(zhǔn)化管理體系
- 《急救技術(shù)洗胃術(shù)》課件
- QCT302023年機動車用電喇叭技術(shù)條件
- 中醫(yī)內(nèi)科學(xué)方劑+歌訣
- 分形理論幻燈片
- 汽車租賃后續(xù)服務(wù)承諾
- 高風(fēng)險作業(yè)檢查表
- 外傷性截癱課件
- 交接班制度課件
評論
0/150
提交評論