2007/10/31 | EventListener AS1.0版本
类别(Flash习作) | 评论(0) | 阅读(83) | 发表于 23:43

//试验
#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();
  }
 }
};

0

评论Comments