術(shù)語(yǔ)匯編 全面認(rèn)識(shí)Flex函數(shù)用法
本文和大家重點(diǎn)討論一下Flex函數(shù)的用法,F(xiàn)lex函數(shù)是封裝起來(lái)的一段特定的代碼塊,目的是為了更好的重用代碼,更容易維護(hù),希望本文的介紹能讓你有所收獲。
Flex函數(shù)
Flex函數(shù):Flex函數(shù)是封裝起來(lái)的一段特定的代碼塊,目的是為了更好的重用代碼,更容易維護(hù).
1.定義Flex函數(shù)
格式:作用域functionFlex函數(shù)名(參數(shù)1,參數(shù)2,....):返回類型
{
Flex函數(shù)體
}
Code
- /*************************************
- *創(chuàng)建獲取全名的Flex函數(shù)
- *************************************/
- privatefunctionGetFullName(fName:String,lName:String):String
- {
- //組合名字
- varfullName:String=fName+""+lName;
- //返回全名
- returnfullName;
- }
2.Flex函數(shù)調(diào)用
格式:Flex函數(shù)名(參數(shù)1,參數(shù)2,參數(shù)3,...);
Code
- //包
- package
- {
- importflash.display.Sprite;
- //類名
- publicclassFunctionExampleextendsSprite
- {
- /*************************************
- *構(gòu)造Flex函數(shù)
- *************************************/
- publicfunctionFunctionExample()
- {
- //調(diào)用Flex函數(shù)
- varfullName:String=GetFullName("Tom","Green");
- //輸出
- trace("全名是:"+fullName);
- }
- /*************************************
- *創(chuàng)建獲取全名的Flex函數(shù)
- *************************************/
- privatefunctionGetFullName(fName:String,lName:String):String
- {
- //組合名字
- varfullName:String=fName+""+lName;
- //返回全名
- returnfullName;
- }
- }
- }
#p#3.Flex函數(shù)作用域:
Flex函數(shù)是有權(quán)限,分為公有和私有.公有關(guān)鍵字public,私有關(guān)鍵字private.
Code
- package
- {
- publicclassSongInfo
- {
- /************************************
- *根據(jù)歌曲名獲取歌手信息
- **/
- publicfunctionGetSinger(songTitle:String):String
- {
- varsinger:String="";
- switch(songTitle)
- {
- case"改變自己":
- singer="王力宏";
- break;
- case"夜曲":
- singer="周杰倫";
- break;
- case"知足":
- singer="五月天";
- break;
- case"就是愛(ài)你":
- singer="陶喆";
- break;
- }
- returnsinger;
- }
- /************************************
- *根據(jù)歌曲名獲取歌手信息
- **/
- publicfunctionGetAlbumInfo(songTitle:String):String
- {
- returnGetAlbum(songTitle);
- }
- /************************************
- *根據(jù)歌曲名獲取歌手信息
- **/
- privatefunctionGetAlbum(songTitle:String):String
- {
- varalbum:String="";
- switch(songTitle)
- {
- case"改變自己":
- album="改變自己";
- break;
- case"夜曲":
- album="十一月的蕭邦";
- break;
- case"知足":
- album="知足";
- break;
- case"就是愛(ài)你":
- album="太平盛世";
- break;
- }
- returnalbum;
- }
- }
- }
4.訪問(wèn)上面的Flex函數(shù):
Code
- package
- {
- importflash.display.Sprite;
- publicclassFunctionScopeExampleextendsSprite
- {
- /*************************************
- *構(gòu)造Flex函數(shù)
- *************************************/
- publicfunctionFunctionScopeExample()
- {
- //調(diào)用Flex函數(shù)
- GetSongInfo("夜曲");
- }
- /*************************************
- *獲取歌曲信息
- *************************************/
- privatefunctionGetSongInfo(song:String):void
- {
- //聲明變量
- varsinger:String="";
- varalbum:String="";
- //實(shí)例化
- varsongInfo:SongInfo=newSongInfo();
- //獲取歌手信息
- singer=songInfo.GetSinger(song);
- //獲取所屬專輯
- album=songInfo.GetAlbumInfo(song);
- //輸出結(jié)果
- trace("歌曲名:"+song);
- trace("歌手:"+singer);
- trace("所屬專輯:"+album);
- }
- }
- }
返回結(jié)果:
歌曲名:夜曲
歌手:周杰倫
所屬專輯:十一月的蕭邦#p#
5.Flex函數(shù)的參數(shù)
5.1.值參數(shù):
值參數(shù)傳入Flex函數(shù)體后復(fù)制一個(gè)副本在Flex函數(shù)內(nèi)使用不會(huì)影響外部變量的值.
Code
- publicfunctionArgumentsExample()
- {
- //值參數(shù)
- varfName:String="Lalo";
- trace("傳遞之前的變量值:"+fName);
- PassPrimitives(fName);
- trace("傳遞之后的變量值:"+fName);
- }
- /************************************
- *值傳遞參數(shù)
- **/
- privatefunctionPassPrimitives(fName:String):void
- {
- fName="hello!"+fName;
- trace("Flex函數(shù)返回值:"+fName);
- }
- /*返回值
- 傳遞之前的變量值:Lalo
- Flex函數(shù)返回值:hello!Lalo
- 傳遞之后的變量值:Lalo
- */
引用參數(shù):引用參數(shù)傳入Flex函數(shù)體后部會(huì)產(chǎn)生一個(gè)副本,而是傳遞一個(gè)參數(shù)的引用,所以Flex函數(shù)內(nèi)部所做的修改會(huì)影響到外部引用變量的值.
Code
- publicfunctionArgumentsExample()
- {
- //引用參數(shù)
- varmyName:Object={fName:"Lalo"};
- trace("傳遞之前的變量值:"+myName.fName);
- PassByRef(myName);
- trace("傳遞之后的變量值:"+myName.fName);
- }
- /************************************
- *引用傳遞參數(shù)
- **/
- privatefunctionPassByRef(myName:Object):void
- {
- myName.fName="Tom";
- trace("Flex函數(shù)返回值:"+myName.fName);
- }
- /*返回結(jié)果:
- 傳遞之前的變量值:Lalo
- Flex函數(shù)返回值:Tom
- 傳遞之后的變量值:Tom
- */
#p#5.3默認(rèn)參數(shù):
定義了默認(rèn)參數(shù)后,傳值時(shí)可以將其省略,但是默認(rèn)參數(shù)必須放在非默認(rèn)參數(shù)后面.
Code
- publicfunctionArgumentsExample()
- {
- //默認(rèn)參數(shù)
- DefaultArguments(2,5);
- }
- /************************************
- *默認(rèn)參數(shù)
- **/
- privatefunctionDefaultArguments(x:int,y:int,z:int=10):void
- {
- trace(x,y,z);
- }
- /*返回結(jié)果:2510*/
5.4arguments對(duì)象參數(shù):
arguments對(duì)象是一個(gè)數(shù)組,保存著所有傳遞過(guò)來(lái)的參數(shù)信息,可以應(yīng)用arguments對(duì)象獲得所有的參數(shù)信息,arguments.length屬性獲得參數(shù)的個(gè)數(shù).
Code
- //arguments參數(shù)
- ArgumentsObject(10,20,30);
- /************************************
- *arguments參數(shù)
- **/
- privatefunctionArgumentsObject(x:int,y:int,z:int):void
- {
- trace("輸出所有參數(shù):");
- for(vari:uint=0;i<arguments.length;i++)
- {
- trace(arguments[i]);
- }
- }
/*返回結(jié)果
10
20
30
*/
5.5...(rest)參數(shù):
接受多個(gè)以逗號(hào)分割的參數(shù).
Code
- /************************************
- *(rest)參數(shù)
- **/
- privatefunctionRestArguments(args):void
- {
- trace("輸出所有參數(shù):");
- for(vari:uint=0;i<args.length;i++)
- {
- trace(args[i]);
- }
- }
- //(rest)參數(shù)
- RestArguments(10,20,30);
/*返回結(jié)果:
10
20
30
*/
6.遞歸Flex函數(shù):
反復(fù)調(diào)用自身的Flex函數(shù).
Code
- publicfunctionSelfFunctionExample()
- {
- trace("遞歸Flex函數(shù)的結(jié)果:"+SelfFunction(6));
- trace(GetFullName());
- }
- *遞歸Flex函數(shù)
- **/
- publicfunctionSelfFunction(x:int):int
- {
- if(x==0)
- {
- return0;
- }
- else
- {
- return2*SelfFunction(x-1)+x*x;
- }
- }
返回結(jié)果:
遞歸Flex函數(shù)的結(jié)果是:318
【編輯推薦】
- FlexBuilder快捷鍵使用說(shuō)明
- Flex2.0Beta1新功能出爐
- 揭露Flex2.0的幾大誤區(qū)
- FlexBuilder3.0與Eclipse3.4的完美結(jié)合
- 剖析Flex DataGrid分頁(yè)控件的兩種分頁(yè)形式用法