2011/01/06
一个merge算法,来自AS3.0的源码
public class Test extends MovieClip {
private static var defaultStyles1:Object = { a:"aa", b:"bb", c:"cc", d:null, e:null };
private static var defaultStyles2:Object = { a:null, b:null, c:"ccc", d:"ddd", e:"eee" };
/**
* Constructor
*/
public function Test() {
initialize();
}
/**
* initialize
*/
public function initialize():void {
var strStyle:String = "";
var style:Object = mergeStyles(defaultStyles1, defaultStyles2);
for (var styleName:String in style) {
strStyle += style[styleName];
}
trace(strStyle);
}
/**
* merage style
* @param ...list
* @return
*/
public function mergeStyles(...list:Array):Object {
/* return value */
var style:Object = { };
/* unconfirmed length parameter */
for (var i:int = 0; i < list.length; i++) {
var styleList:Object = list[i];
/* check */
for (var styleName:String in styleList) {
if (style[styleName] != null) {
continue;
}
style[styleName] = styleList[styleName];
}
}
return style;
}
}