中文字幕二区_国产精品免费在线观看_黄色网站观看_人人草人人澡_日本真实娇小xxxx

您的位置: 首頁 > 技術(shù)文檔 > 多媒體制作 > [AS]深入了解Function
用SharedObject實(shí)現(xiàn)的Cookie 回到列表 FLASH8 FLVPlayback組件
 [AS]深入了解Function

作者:KingdaSun 時(shí)間: 2006-06-10 文檔類型:原創(chuàng) 來自:藍(lán)色理想

第 1 頁 深入了解Function [1]
第 2 頁 深入了解Function [2]
第 3 頁 深入了解Function [3]

作者的Blog:www.kingda.org

Function究竟是什么?

我們習(xí)慣了function的存在,就像習(xí)慣了我們呼吸的空氣卻不去探究它的本質(zhì)?雌饋,似乎function和Number, Boolean, String一樣都是ActionScript本來就有的類型。

先看以下代碼:

trace (aFunc);     //輸出:[type Function]
trace (aFunc instanceof Function); //輸出:true
trace (aFunc instanceof Object); //輸出:true

function aFunc() {
  trace (“This is aFunc!Excuted!”);
}

第一行告訴我們aFunc的類型是Function, 第二行又證實(shí)了這一點(diǎn)aFunc確實(shí)是一個(gè)Function類型的實(shí)例,第三行更加有意思告訴我們aFunc是一個(gè)Object。

初學(xué)者可能很驚奇,其實(shí)AS2.0中除了原始數(shù)據(jù)類型Number, Boolean, String,undefined, null,其余全是Object. 而AS3.0中則更加極端,一切皆對象。包括原始數(shù)據(jù)類型也是Object,只不過是特殊的不變對象(immutable objects)類型。與主題扯遠(yuǎn)了,打住。

Function本質(zhì)上到底是怎樣的一種Object?

與其他編程語言不同,在AS中, Function是一個(gè)Object,可以有獨(dú)立的屬性甚至方法。比如arguments,callee,caller。在AS3.0中,F(xiàn)unction還由更多的屬性。
函數(shù)一旦執(zhí)行,一個(gè)特殊的對象就建立了。我們稱它為"active object",它含有以上的屬性和本地變量。這個(gè)對象我們是不可訪問的,屬于內(nèi)建的機(jī)制。同時(shí),每個(gè)Function都含有一個(gè)內(nèi)置的范圍鏈(scope chain),這時(shí)也將被建立,以使Flash Player來檢查所有的聲明。函數(shù)可以層層嵌套,范圍鏈也是如此。最大的范圍鏈那當(dāng)然是Global函數(shù)的范圍鏈了,包括所有的全局變量和函數(shù)。

知道了Function 是Object又怎樣?

會給我們帶來極大的便利和編程思維的改變:
運(yùn)用一:這是簡單運(yùn)用, 設(shè)立一個(gè)代理函數(shù)對象,根據(jù)條件的不同,將它指向不同的函數(shù),實(shí)現(xiàn)動態(tài)改變。相信有經(jīng)驗(yàn)的程序員都了解動態(tài)改變函數(shù)的便利性。而且由于AS提供了這種便利,運(yùn)用這個(gè)特性可以衍生大量技巧。

var kingdaFunc:Function;
var sex:String = "male";
if ( sex == "male") {
 kingdaFunc = maleFunc;
} else {
 kingdaFunc = femailFunc;
}
kingdaFunc();  //輸出: I am a boy

function maleFunc() {
 trace ("I am a boy");
}
function femaleFunc() {
 trace ("I am a girl");
}

運(yùn)用二:建立函數(shù)執(zhí)行隊(duì)列。

比如說,我有一個(gè)對象,我想根據(jù)不同的情況對它進(jìn)行一系列的操作。但是有時(shí)需要所有的操作,有時(shí)又只需要一部分的操作。那么這個(gè)較高級的技巧,就能保證代碼的高度重用性和簡潔。

var funcAry:Array = new Array();

//將需要的操作步驟加入隊(duì)列
funcAry.push(aFunc);
funcAry.push(bFunc);
funcAry.push(cFunc);

//供操作的對象
var originObject:Object = new Object();

//需要執(zhí)行幾步由execQueue這個(gè)參數(shù)決定,在實(shí)際工程運(yùn)用中這個(gè)數(shù)可能是動態(tài)決定的。
var execQueue:Number = funcAry.length;

/核心步驟:/函數(shù)隊(duì)列執(zhí)行。實(shí)際運(yùn)用中可以把它包裝成一個(gè)函數(shù),或者一個(gè)類的實(shí)例。
for (var i:Number =0; i<execQueue; i++) {
 funcAry[i](originObject);
}

//trace出執(zhí)行操作后的originObject里面的內(nèi)容
for (var i in originObject) {
 trace ( i + ":" + originObject[i]);
}

//操作步驟a,b,c
function aFunc(eO:Object) {
 eO.aFuncExected = true;
 trace ("aFunc()");
}
function bFunc(eO:Object) {
 eO.bFuncExected = true;
 trace ("bFunc()");
}
function cFunc(eO:Object) {
 eO.cFuncExected = true;
 trace ("cFunc()");
}

輸出內(nèi)容為:

aFunc()
bFunc()
cFunc()
cFuncExected:true
bFuncExected:true
aFuncExected:true

前三行表明a,b,c三個(gè)函數(shù)按順序執(zhí)行了。后三行表明orginObject確實(shí)經(jīng)過了三步操作,多了三個(gè)為true的屬性。

黑羽提醒:技巧可以再延深!
可以通過一個(gè)函數(shù)來管理隊(duì)列里面各個(gè)元素的位置,達(dá)到改變操作函數(shù)的順序。比如通過一個(gè)數(shù)組來安排調(diào)用順序

var operationAry:Array = [2,1,0]
for(var i:Number = 0; i<operationAry.length; i ++) {
 funcAry[operationAry[i]](originObject);
}

這樣函數(shù)就通過2,1,0這樣的倒序來執(zhí)行操作。

這個(gè)技巧還有很多可以延伸的地方,比如說動態(tài)控制操作函數(shù)的參數(shù)等等,供大家自己研究擴(kuò)展。

經(jīng)典論壇討論帖:
http://m.95time.cn/bbs/newsdetail.asp?id=2610583

出處:藍(lán)色理想
責(zé)任編輯:moby

上一頁 下一頁 深入了解Function [2]

◎進(jìn)入論壇Flash專欄版塊參加討論

相關(guān)文章 更多相關(guān)鏈接
Flash 8動畫設(shè)計(jì)標(biāo)準(zhǔn)教程
用flash控制全景播放
Flash 遠(yuǎn)程調(diào)試器1.0Beta
淺釋ActionScript的代碼優(yōu)化
制作V2組件mxp安裝文件詳解
作者文章
Flash 遠(yuǎn)程調(diào)試器1.0Beta
KToolTip(工具提示組件)
淺釋ActionScript的代碼優(yōu)化
制作V2組件mxp安裝文件詳解
關(guān)鍵字搜索 常規(guī)搜索 推薦文檔
熱門搜索:CSS Fireworks 設(shè)計(jì)比賽 網(wǎng)頁制作 web標(biāo)準(zhǔn) 用戶體驗(yàn) UE photoshop Dreamweaver Studio8 Flash 手繪 CG
站點(diǎn)最新 站點(diǎn)最新列表
周大!熬•自然”設(shè)計(jì)大賽開啟
國際體驗(yàn)設(shè)計(jì)大會7月將在京舉行
中國國防科技信息中心標(biāo)志征集
云計(jì)算如何讓安全問題可控
云計(jì)算是多數(shù)企業(yè)唯一擁抱互聯(lián)網(wǎng)的機(jī)會
阿里行云
云手機(jī)年終巨獻(xiàn),送禮標(biāo)配299起
阿里巴巴CTO王堅(jiān)的"云和互聯(lián)網(wǎng)觀"
1499元買真八核 云OS雙蛋大促
首屆COCO桌面手機(jī)主題設(shè)計(jì)大賽
欄目最新 欄目最新列表
淺談JavaScript編程語言的編碼規(guī)范
如何在illustrator中繪制臺歷
Ps簡單繪制一個(gè)可愛的鉛筆圖標(biāo)
數(shù)據(jù)同步算法研究
用ps作簡單的作品展示頁面
CSS定位機(jī)制之一:普通流
25個(gè)最佳最閃亮的Eclipse開發(fā)項(xiàng)目
Illustrator中制作針線縫制文字效果
Photoshop制作印刷凹凸字體
VS2010中創(chuàng)建自定義SQL Rule
>> 分頁 首頁 前頁 后頁 尾頁 頁次:1/31個(gè)記錄/頁 轉(zhuǎn)到 頁 共3個(gè)記錄

藍(lán)色理想版權(quán)申明:除部分特別聲明不要轉(zhuǎn)載,或者授權(quán)我站獨(dú)家播發(fā)的文章外,大家可以自由轉(zhuǎn)載我站點(diǎn)的原創(chuàng)文章,但原作者和來自我站的鏈接必須保留(非我站原創(chuàng)的,按照原來自一節(jié),自行鏈接)。文章版權(quán)歸我站和作者共有。

轉(zhuǎn)載要求:轉(zhuǎn)載之圖片、文件,鏈接請不要盜鏈到本站,且不準(zhǔn)打上各自站點(diǎn)的水印,亦不能抹去我站點(diǎn)水印。

特別注意:本站所提供的攝影照片,插畫,設(shè)計(jì)作品,如需使用,請與原作者聯(lián)系,版權(quán)歸原作者所有,文章若有侵犯作者版權(quán),請與我們聯(lián)系,我們將立即刪除修改。

您的評論
用戶名:  口令:
說明:輸入正確的用戶名和密碼才能參與評論。如果您不是本站會員,你可以注冊 為本站會員。
注意:文章中的鏈接、內(nèi)容等需要修改的錯(cuò)誤,請用報(bào)告錯(cuò)誤,以利文檔及時(shí)修改。
不評分 1 2 3 4 5
注意:請不要在評論中含與內(nèi)容無關(guān)的廣告鏈接,違者封ID
請您注意:
·不良評論請用報(bào)告管理員,以利管理員及時(shí)刪除。
·尊重網(wǎng)上道德,遵守中華人民共和國的各項(xiàng)有關(guān)法律法規(guī)
·承擔(dān)一切因您的行為而直接或間接導(dǎo)致的民事或刑事法律責(zé)任
·本站評論管理人員有權(quán)保留或刪除其管轄評論中的任意內(nèi)容
·您在本站發(fā)表的作品,本站有權(quán)在網(wǎng)站內(nèi)轉(zhuǎn)載或引用
·參與本評論即表明您已經(jīng)閱讀并接受上述條款
推薦文檔 | 打印文檔 | 評論文檔 | 報(bào)告錯(cuò)誤  
專業(yè)書推薦 更多內(nèi)容
網(wǎng)站可用性測試及優(yōu)化指南
《寫給大家看的色彩書1》
《跟我去香港》
眾妙之門—網(wǎng)站UI 設(shè)計(jì)之道
《Flex 4.0 RIA開發(fā)寶典》
《贏在設(shè)計(jì)》
犀利開發(fā)—jQuery內(nèi)核詳解與實(shí)踐
作品集 更多內(nèi)容

雜⑦雜⑧ Gold NORMANA V2