当前位置:网站设计首页 >> 建站工具 >> Flash >> 深入了解ActionScript高级技巧正文

深入了解ActionScript高级技巧 (3)

日期:2006-06-19 18:30:07  点击:86  作者:佚名  来源:设计动量  文字大小:【】【】【

简介:Function究竟是什么? 我们习惯了function的存在,就像习惯了我们呼吸的空气却不去探究它的本质。看起来,似乎function和Number, Boolean, String一样都是ActionScript本来就有的类型 先看以下代码: trace (aFunc); //输出:[type Function] trace (aFunc instanceof

运用二:建立函数执行队列。

比如说,我有一个对象,我想根据不同的情况对它进行一系列的操作。但是有时需要所有的操作,有时又只需要一部分的操作。那么这个较高级的技巧,就能保证代码的高度重用性和简洁。

var funcAry:Array = new Array();

//将需要的操作步骤加入队列

funcAry.push(aFunc);

funcAry.push(bFunc);

funcAry.push(cFunc);

//供操作的对象

var originObject:Object = new Object();

//需要执行几步由execQueue这个参数决定,在实际工程运用中这个数可能是动态决定的。

var execQueue:Number = funcAry.length;

/核心步骤:/函数队列执行。实际运用中可以把它包装成一个函数,或者一个类的实例。

for (var i:Number =0; i

funcAry[i](originObject);

}

//trace出执行操作后的originObject里面的内容

for (var i in originObject) {

trace ( i + ":" + originObject[i]);

}

//操作步骤a,b,c

function aFunc(eObject) {

eO.aFuncExected = true;

trace ("aFunc()");

}

function bFunc(eObject) {

eO.bFuncExected = true;

trace ("bFunc()");

}

function cFunc(eObject) {

eO.cFuncExected = true;

trace ("cFunc()");

}

输出内容为:

aFunc()

bFunc()

cFunc()

cFuncExected:true

bFuncExected:true

aFuncExected:true

前三行表明a,b,c三个函数按顺序执行了。后三行表明orginObject确实经过了三步操作,多了三个为true的属性。

黑羽提醒:技巧可以再延深!

可以通过一个函数来管理队列里面各个元素的位置,达到改变操作函数的顺序。比如通过一个数组来安排调用顺序

var operationAry:Array = [2,1,0]

for(var i:Number = 0; i

funcAry[operationAry[i]](originObject);

}

这样函数就通过2,1,0这样的倒序来执行操作。

这个技巧还有很多可以延伸的地方,比如说动态控制操作函数的参数等等,供大家自己研究扩展。

责任编辑:ofly
0
顶一下
0
踩一下
本文引用地址: http://okimg.com/web/web-design-Flash-2811.html