如何删除事件监听器
从影片剪辑
的动作?下面是我的示例code。
how can i remove EventListener
from MovieClip
in actionscript? Below is my sample code.
import flash.events.MouseEvent;
import flash.geom.ColorTransform;
var color: ColorTransform = new ColorTransform();
color.color = 0x00CC66;
colorChange_mc.buttonMode = true;
colorChange_mc.addEventListener(MouseEvent.MOUSE_OVER, changeColor(color));
colorChange_mc.addEventListener(MouseEvent.MOUSE_OUT, changeColorToNormal);
function changeColor(color: ColorTransform): Function {
return function (e: MouseEvent): void {
colorChange_mc.transform.colorTransform = color;
}
}
function changeColorToNormal(e: MouseEvent): void {
var color: ColorTransform = new ColorTransform();
color.color = 0x000033;
colorChange_mc.transform.colorTransform = color;
}
changer_mc.buttonMode = true;
changer_mc.addEventListener(MouseEvent.MOUSE_DOWN, removeEvent);
function removeEvent(e: MouseEvent): void {
colorChange_mc.removeEventListener(MouseEvent.MOUSE_OVER, changeColor(color));
}
我创建了两个影片剪辑
S上的期
,colorChange_mc有两个事件监听器
■一个用于 MOUSEDOWN
,一个是的mouseout
。当change_mc按钮为pressed我想删除事件监听器
之一。我能够删除事件监听器
不传递参数changeColor功能。但我真正的类此参数起着至关重要的作用。
I created two MovieClip
s on the stage
, colorChange_mc has two EventListener
s one for mouseDown
and one for mouseOut
. When change_mc button is pressed I want to remove one of the EventListener
. I was able to remove EventListener
without passing parameter to changeColor function. But in my real class this parameter plays crucial role.
使用一类变种,而不是 - 一个你已经在你的code。要保持挺直我创建了第二个的ColorTransform
作为一类变种 - NORMALCOLOR
Use a class-var instead - one you have already in your code. To keep straight I created a second ColorTransform
as a class-var - normalColor
import flash.events.MouseEvent;
import flash.geom.ColorTransform;
var color: ColorTransform = new ColorTransform();
color.color = 0x00CC66;
var normalColor: ColorTransform = new ColorTransform();
normalColor.color = 0x000033;
colorChange_mc.buttonMode = true;
colorChange_mc.addEventListener(MouseEvent.MOUSE_OVER, changeColor);
colorChange_mc.addEventListener(MouseEvent.MOUSE_OUT, changeColorToNormal);
function changeColor(e:MouseEvent): void{
colorChange_mc.transform.colorTransform = color;
}
function changeColorToNormal(e:MouseEvent): void {
colorChange_mc.transform.colorTransform = normalColor;
}
changer_mc.buttonMode = true;
changer_mc.addEventListener(MouseEvent.MOUSE_DOWN, removeEvent);
function removeEvent(e:MouseEvent): void {
colorChange_mc.removeEventListener(MouseEvent.MOUSE_OVER, changeColor);
}
问候。