问题:var动物的正面是什么:Pets = new Pets(); ??
脚本:
package {
import flash.events.MouseEvent;
public class Pets {
public function Pets() {
// constructor code
my_btn.addEventListener(MouseEvent.CLICK, onClick)
}
private function onClick(e:MouseEvent) {
trace(Start);
}
}
}
问题: 当我从另一个班级(新宠物())打电话给Pets课程时; ,它运行类,addEventListener工作正常但是:
第一次:跟踪结果
开始
第二次:追踪结果
开始
开始
第三次:追踪结果
开始
启动
开始
以及....
感谢lotttt
答案 0 :(得分:2)
假设my_btn
是舞台上按钮的一个实例,每次创建Pets
的新实例时,都会向同一{{1}添加新的MouseEvent.CLICK
事件处理程序实例。
有几种不同的方法可以解决这个问题,但这取决于你希望如何运作。如果您只想要存在一个my_btn
实例,那么在my_btn
类之外添加MouseEvent.CLICK
处理程序(并且只添加一次)。如果每个Pets
实例都需要自己的按钮,那么您需要为Pets
的每个实例实例化my_btn
的新实例(目前看起来您正在引用同一个{{1}实例跨所有Pets
个实例)。