ActionScript 3.0 Step By Step系列(四):來自面向對象開發之前的吶喊:“學會寫可重用的代碼”...

?????增強代碼的可重用能力,從創建可重用的代碼開始,可重用的代碼則是通過從現有代碼中重構加以封裝,使其成為功能單一的可復用代碼塊。這句話籠統點說便是“封裝”或“抽象”。

?????在實際的編程開發中,要實現代碼重用,而不是每次都去Copy同樣的代碼,我們可以創建一個方法,將代碼封裝在方法里然后在需要的地方調用它;如果每次執行的任務都有微小的變化,但又不想每次都復制那些代碼修改一次,我們可以給方法傳遞參數讓它適宜不同的情況。

?????本文仍然屬于基礎篇文章,還是著重介紹ActinScript開發的基礎知識,以及結合Adobe Flex CS3開發環境,介紹怎么使用Flex這樣優秀的IDE環境去創建ActionScript程序,以及以類文件為基礎去封裝程序代碼,使其成為可復用的代碼等。

一、從創建項目開始

?????本文主要是為后面面向對象開發打基礎,相信大家都非常的熟悉VS2003/2005/2008中的一中或多種開發工具,那么熟悉開發環境對開發工作肯定是有益無害,還是不廢話了,下面便從建立項目開始,近一步的熟悉Adobe Flex CS3開發環境。
????????
??????????
?????上圖便是Flex創建項目向導,輸入個項目名稱然后選擇項目存儲的路徑便OK。關于"Application server type"將在后續章節里介紹,然后點“下一步”便完成項目的創建。

?????成功創建項目后,在項目的src下便有一個mxml文件(此文件在之前的文章里有介紹),查看其源視圖可以看到:

1?<?xml?version="1.0"?encoding="utf-8"?>
2?<mx:Application?xmlns:mx="http://www.adobe.com/2006/mxml"?
3?????layout="absolute"?>
4?
5?</mx:Application>
6?

?????OK,此你看到的便是在Flex環境下開發ActionScript應用的開發模型結構,一個mxml對應的則是一個應用界面。那好,有了開發模型是不是應該放點代碼進去呢?我們可以通過creationComplete屬性為應用指定一個初始化方法:
?1?<?xml?version="1.0"?encoding="utf-8"?>
?2?<mx:Application?xmlns:mx="http://www.adobe.com/2006/mxml"?
?3?????layout="absolute"?creationComplete="Init()">
?4?????<mx:Script>
?5?????????<![CDATA[
?6?????????????internal?function?Init():void?{
?7?????????????????trace("應用程序的初始化方法");
?8?????????????}
?9?????????]]>
10?????</mx:Script>
11?</mx:Application>
??????

二、使用方法創建可重用代碼

?????現在有這樣一個小的需求,我們需要計算兩個數的和。OK,這個簡單,拖兩個文本輸入框組件來輸入數據和顯示計算結果,在放置一個按扭來執行計算命令就OK。

???? ?????

?????從上圖上可以看出為按扭添加了click方法,click方法Init()的代碼如下:

?1?????<mx:Script>
?2?????????<![CDATA[
?3?????????????internal?function?Init():void?{
?4?????????????????//trace("應用程序的初始化方法");
?5?????????????????var?a:int?=?int(txtA.text);
?6?????????????????var?b:int?=?int(txtB.text);
?7?????????????????txtC.text?=?(a?+?b).toString();
?8?????????????}
?9?????????]]>
10?????</mx:Script>

?????通過上面的嘗試,其實我們已經學會了使用方法去封裝代碼,那么如何達到可重用呢?在這里我就不多說了,和其他的語言一樣,要達到靈活度重用度高,那便是對現有代碼進行重構,比如上面代碼我們可以進行一次重構讓其成為真正能夠重用的代碼。首先要弄清楚功能需求,我們需要一個可重用的方法來計算兩個數之和。OK,下面來重構吧!

?1?????/*
?2??????*?方法功能:計算兩個數之和?
?3??????*?參數說明:
?4??????*????????a:整型
?5??????*????????b:整型
?6??????*?返回值:返回傳遞進來的兩個整型參數之和(int)
?7??????*/
?8?????private?function?Add(a:int,?b:int):int?{
?9?????????return?a?+?b;
10?????}


?????通過上面的重構,抽象出了一個通用的可重用的方法,以后需要計算和的地方直接使用此方法便OK。如上我們邊完成了通過方法來封裝程序代碼,以到達可重用的目的。

注意上面示例只是為了方便理解,實際編程開發中并非只是如此簡單的封裝,重構過程也不會這么簡單。

?

三、養成使用類封裝方法的好習慣

?????在實際開發中,封裝程序代碼并非我們上面所演示的這樣簡單,需要更加集中、有序或是按照一定的規律來進行封裝。通常都是使用類將方法封裝在一起,而方法則封裝實現具體業務功能的代碼。OK,說到類,那我們就從創建一個類文件開始。
???????????

?????圖比文章更具有說服力,創建類文件的過程直接掃描上圖便知。OK,繼續下一張圖:
????????????????????

?????通過上面這兩步,便創建了一個名為Book的ActionScript類,相應的文件為Book.as,新建立的Book類的結構如下:

1?package?ActionScript.OOP
2?{
3?????public?class?Book
4?????{
5?????????public?function?Book()
6?????????{
7?????????}
8?????}
9?}


?????在ActionScript中的編程方式和Java大同小異,同Java一樣有包的概念,如同.net下的名稱空間。如上代碼快,不同的是方法的定義上多了一個關鍵字“function”。OK,下面我們為Book類添加兩個方法,獲取圖書的名稱和價格:

?1?????private?var?price:Number?=?55.00;
?2?????private?var?name:String?=?"ActionScript開發手冊";
?3?????????
?4?????public?function?getBookName():String?
?5?????{
?6?????????return?this.name;
?7?????}
?8?????????
?9?????pulic?function?getBookPrice():Number?
10?????{
11?????????return?this.price;
12?????}


?????通過上面一步一步的努力勞動,已經熟練的掌握了使用類來封裝方法。?????

注意上面示例只是為了方便理解,實際編程開發中并非只是如此簡單的封裝,應該根據實際的業務邏輯來處理。

?

三、調用可重用代碼的方法

?????做事應該有始有終吧,有了上面的類,雖只是一個用于演示的半成品,總不能上前面的所有努力都付之東流吧,下面來調用下所封裝的方法。
?????要使用外部封裝的類,在ActionScript中和Java中是一樣的,通過 Import將外部包導入到當前項目就OK。如下圖示:

?????????????

?????導入之前我們創建的Book類,通過實例化類對象便可以調用類中所封裝的公共方法了,這點和C#/Java也是一樣的。至此,使用Flex開發環境,通過類封裝方法,使其成為可重用的代碼就介紹到這里,更深入的知識點將在后續章節逐步介紹。

三、使用異常加強代碼的健壯性

?????ActionScritp 3.0中使用異常,和C#/Java一樣的,這里就不做詳細介紹。有興趣的可以參考下面連接的文章。
?????異常和異常處理(C#編程指南):http://msdn.microsoft.com/zh-cn/library/ms173160.aspx?。如果要了解和學習ActionScript 的各種異常類請查看文檔。官方在線幫助文檔地址請查看第本系列的第二篇文章,ActionScript 3.0 Step By Step系列(二):建立扎實的ActionScript 3.0語法基礎

四、本文小結

?????1、近一步熟悉Adobe Flex開發環境。

?????2、在Flex下使用Action Class文件封裝方法,使其成為可復用代碼以及調用。

?????3、ActionScript 3.0下的異常機制。

?

注:原創文章歡迎轉載,本文版權歸作者和博客園共有,轉載務必注明文章出處。??

???? 作???? 者:Beniao

?????文章出處:http://beniao.cnblogs.com/? 或? http://www.cnblogs.com/

轉載于:https://www.cnblogs.com/beniao/archive/2008/12/24/1359233.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/276711.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/276711.shtml
英文地址,請注明出處:http://en.pswp.cn/news/276711.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

express利用nodemailer發送郵件(163郵箱)

Nodemailer 是一個簡單易用的Node.js郵件發送組件 首先安裝這個組件 npm install nodemailer --save安裝之后&#xff0c;可以在某個get請求下&#xff0c;發送郵件&#xff0c;具體路由代碼&#xff1a; const express require("express"); const nodemailer requ…

使用 Solid 私有化存儲 IPFS 文件哈希值

背景 星際文件系統 IPFS&#xff08;InterPlanetary File System&#xff09;是一個面向全球的、點對點的分布式文件系統&#xff0c;目標是為了補充&#xff08;甚至是取代&#xff09;目前統治互聯網的超文本傳輸協議&#xff08;HTTP&#xff09;&#xff0c;將所有具有相同…

使用window.postMessage實現跨域通信

JavaScript由于同源策略的限制,跨域通信一直是棘手的問題。當然解決方案也有很多&#xff1a; document.domainiframe的設置&#xff0c;應用于主域相同而子域不同&#xff1b;利用iframe和location.hash&#xff0c;數據直接暴露在了url中&#xff0c;數據容量和類型都有限Fla…

appium啟動app失敗_Appium-Desktop Capability 配置及啟動App演示

Appium-Desktop Capability配置介紹desired capability的功能是配置Appium會話。為什么要配置capability&#xff0c;目的就是為了告訴Appium服務器您想要自動化的平臺和應用程序。Desired Capabilities是一組設置的鍵值對的集合&#xff0c;其中鍵對應設置的名稱&#xff0c;而…

WinRAR 命令行簡體中文說明

從命令行也可以運行 WinRAR 命令&#xff0c;常規的命令行語法描述如下:WinRAR - -命令 要 WinRAR 運行的字符組合代表功能。開關 切換操作指定類型&#xff0c;壓縮強度&#xff0c;壓縮文件類型&#xff0c;等等的定義。壓縮文件 要處理的壓縮文件名。文件 要處理的文件名。列…

以Windows服務方式運行.NET Core程序

原文:以Windows服務方式運行.NET Core程序在之前一篇博客《以Windows服務方式運行ASP.NET Core程序》中我講述了如何把ASP.NET Core程序作為Windows服務運行的方法&#xff0c;而今&#xff0c;我們又遇到了新的問題&#xff0c;那就是&#xff1a;我們的控制臺程序&#xff0c…

SparkSession.read().csv()無法定位本地文件的問題

原因是spark有兩個文件頭 [file://]代表本地 [hdfs://]代表hdfs路徑 如果路徑沒有文件頭&#xff0c;spark會將該路徑默認添加上"hdfs://" 所以如果要訪問本地csv文件&#xff0c;需要確保路徑前面有"file://" //java代碼&#xff0c;告訴spark這是本地文件…

JavaScript的10種跨域共享的方法

在客戶端編程語言中&#xff0c;如javascript和ActionScript&#xff0c;同源策略是一個很重要的安全理念&#xff0c;它在保證數據的安全性方面有著重要的意義。同源策略規定跨域之間的腳本是隔離的&#xff0c;一個域的腳本不能訪問和操作另外一個域的絕大部分屬性和方法。那…

好用的shell工具_精選5個酷斃的Python工具

來自&#xff1a;Python之禪工欲善其事必先利其器&#xff0c;一個好的工具能讓起到事半功倍的效果&#xff0c;Python社區提供了足夠多的優秀工具來幫助開發者更方便的實現某些想法&#xff0c;下面這幾個工具給我的工作也帶來了很多便利&#xff0c;推薦給追求美好事物的你。…

承載輝煌歷史 暢想無線未來

看了JustDI的文章“手機也能當電腦用&#xff1f;&#xff0d;&#xff0d;談談未來智能手機操作系統的走向”&#xff0c;作為嵌入式愛好者&#xff0c;我也想談談自己的看法。首先&#xff0c;從網絡發展的角度看&#xff0c;移動互聯網的寬帶化&#xff0c;寬帶互聯網的移動…

接口碼釋義

1xx&#xff1a;信息&#xff0c;請求收到&#xff0c;繼續處理 2xx&#xff1a;成功&#xff0c;行為被成功地接受、理解和采納 3xx&#xff1a;重定向&#xff0c;為了完成請求&#xff0c;必須進一步執行的動作 4xx&#xff1a;客戶端錯誤&#xff0c;請求包含語法錯誤或…

java讀取文件內容,文件頭有\ufeff

"\ufeff"是UTF-8 BOM編碼的文件頭&#xff0c;代表該文件按照什么字節順序排序 調用java的工具類[ UnicodeInputStream ]即可解決這個問題 //第二個參數targetEncoding為null時在getDetectedEncoding方法中會自動檢測編碼類型 UnicodeInputStream unicodeInputStrea…

6款國內外SNS開源軟件 搭建社交網站利器

SNS(Social Network Service)&#xff0c;有時稱為社交網絡&#xff0c;有時稱為社會化網絡&#xff0c;專指旨在幫助人們建立社會性網絡的互聯網應用服務。如果對SNS概念還很模糊&#xff0c;說到人人網、開心網你就明白了。 去年360圈、螞蟻網接連關站給SNS前景蒙上一層陰影&…

aop實現原理_從宏觀的實現原理和設計本質入手,帶你理解 AOP 框架的原理

點擊上方“Java知音”&#xff0c;選擇“置頂公眾號”技術文章第一時間送達&#xff01;作者&#xff1a;FeelsChaoticjuejin.im/post/5c57b2d5e51d457ffd56ffbb前言本文將從另一個角度講解 AOP&#xff0c;從宏觀的實現原理和設計本質入手。大部分講 AOP 的博文都是一上來就羅…

孟憲會老師推薦的一部C#圖解教程

Amazon五星級盛譽 C# 最新特性一覽無余 數十年開發與教學經驗的結晶 圖、表和文字完美結合&#xff0c;最易學的C# 教程 本書詳細信息&#xff1a;http://www.china-pub.com/43556 微軟4大名著評選結果揭曉&#xff1a;http://www.china-pub.com/static07/0812/jsj_micrmingz_0…

Python數據分析Numpy庫方法簡介(三)

補充&#xff1a; np.ceil()向上取整 3.1向上取整是4 np.floor()向下取整 數組名.resize((m,n)) 重置行列 基礎操作 np.random.randn()符合正態分布(鐘行/高斯)的數據 矩陣的水平拼接 np.vstack((a,b)) 矩陣的垂直拼接 np.hstack((a,b)) 點陣積&#xff1a; np.dot(a,b)/ ab…

xxl-job源碼分析

xxl-job源碼分析 xxl-job 系統說明 安裝 安裝部署參考文檔&#xff1a;分布式任務調度平臺xxl-job 功能 定時調度、服務解耦、靈活控制跑批時間&#xff08;停止、開啟、重新設定時間、手動觸發&#xff09; XXL-JOB是一個輕量級分布式任務調度平臺&#xff0c;其核心設計目標是…

定制jQuery File Upload為微博式單文件上傳

原文鏈接&#xff1a;http://avnpc.com/pages/single-file-upload-component-by-jquery-file-upload jQuery File Upload是一個非常優秀的上傳組件&#xff0c;主要使用了XHR作為上傳方式&#xff0c;并且利用了相當多的現代瀏覽器功能&#xff0c;所以可以實現諸如批量上傳、超…

vb趣味編程彈球小游戲_最好玩的微信小游戲集合,總有一款是你沒玩過的

大家好&#xff0c;這里是小雅龍生活趣味時間&#xff0c;自從17年微信推出小游戲程序以來&#xff0c;微信小游戲行業可謂是炙手可熱&#xff0c;知道2019年不斷有許許多多的微信小游戲如雨后春筍般的生根發芽。下面就由我帶大家來看看今年最好玩&#xff0c;最受歡迎的微信小…

開發MOSS2007 Masterpage的一些經驗

一直在做MOSS平臺的Masterpage開發,碰到很多的問題,總結了一些經驗,特此記錄: masterpage的所有的ContentPlaceholder詳細解釋見以下網址:http://www.cnblogs.com/WinYoung/archive/2007/06/25/791766.html 1.如果應用masterpage以后IE狀態欄出現""網頁指令碼錯誤訊息…