//试验
#include "Test1.0.as"
function f1() {
trace("call f1");
}
function f2() {
trace("call f2");
}
function f3() {
trace("call f3");
}
function f4() {
trace("call f4");
}
obj = new Test();
obj.addListener("PRESS", f1);
obj.addListener("PRESS", f2);
obj.addListener("PRESS", f1);
obj.addListener("RELEASE", f3);
obj.addListener("RELEASE", f4);
//obj.removeListener("PRESS",f1)
obj.onPress();
obj.onRelease();
//---------------------------------------------------
----------"Test1.0.as"文件内容:-----------
function Test() {
this.listenerList = [];
}
Test.prototype.addListener = function(eventType, listener) {
this.listenerList.push({eventType:eventType, listener:listener});
};
Test.prototype.removeListener = function(eventType, listener) {
for (var i = 0; i<this.listenerList.length; i++) {
if (this.listenerList[i].eventType == eventType && this.listenerList[i].listener == listener) {
this.listenerList.splice(i, 1);
break;
}
}
};
Test.prototype.onPress = function() {
for (var i = 0; i<this.listenerList.length; i++) {
if (this.listenerList[i].eventType == "PRESS") {
this.listenerList[i].listener();
}
}
};
Test.prototype.onRelease = function() {
for (var i = 0; i<this.listenerList.length; i++) {
if (this.listenerList[i].eventType == "RELEASE") {
this.listenerList[i].listener();
}
}
};