for (var i=0; i<=98; i++) {
box1.addEventListener(MouseEvent.CLICK, func(i));
}
function func(i:int):Function{
return function paint(e:MouseEvent):void{
var myColorTransform:ColorTransform = new ColorTransform();
if (i%4==0) {
myColorTransform.color = 0xFF0000;
}
else if (i%4==1) {
myColorTransform.color = 0x0000FF;
}
else if (i%4==2) {
myColorTransform.color = 0x00FF00;
}
else if (i%4==3) {
myColorTransform.color = 0xFFFF00;
}
box1.transform.colorTransform = myColorTransform;
}
}
Я хочу запустить цикл через прослушиватели событий таким образом, чтобы всякий раз, когда я щелкаю по объекту, его цвет трансформируется в следующий. Приведенный выше код просто меняет цвет один раз и создает цвет для последнего значения i (98), которое является зеленым. Пожалуйста помоги. Я новичок в ActionScript.
return function(e:Event){...}
создаете новый экземпляр функции без постоянной ссылки, любая попыткаremoveEventListener()
потерпит неудачу. - person CyanAngel   schedule 10.11.2014