Actionscript 3 取消选择as3中的选择项

Actionscript 3 取消选择as3中的选择项,actionscript-3,flash,action,Actionscript 3,Flash,Action,首先,我在\u txtbtn创建txtfield。然后我选择any mc并在其上创建多个侦听器。现在我想在单击\u can时删除侦听器。所以我创建了\u unselect函数。但它并没有像预期的那样起作用 function _txtbtn(e:*):void { myText = new TextField(); mc3 = new MovieClip(); myText.text = "text..."; myText.type = "input"; mc3.addChild(myText)

首先,我在
\u txtbtn
创建txtfield。然后我选择any mc并在其上创建多个侦听器。现在我想在单击
\u can
时删除侦听器。所以我创建了
\u unselect
函数。但它并没有像预期的那样起作用

function _txtbtn(e:*):void
{
myText = new TextField();
mc3 = new MovieClip();
myText.text = "text...";
myText.type = "input";

mc3.addChild(myText);
addChild(mc3);
mc3.x = _can.x;
mc3.y =  p;
p = mc3.y + mc3.height + 10;
 this.mc3.addEventListener(MouseEvent.MOUSE_DOWN,_select);


function _select(e:MouseEvent):void
{

tool_stage.combo.addEventListener(Event.CHANGE,_font);
tool_stage.steeper.addEventListener(Event.CHANGE,_size);
tool_stage.italic.addEventListener(MouseEvent.CLICK,_bold);
tool_stage.colPicker2.addEventListener(ColorPickerEvent.CHANGE, changeColor1);
_can.addEventListener(MouseEvent.MOUSE_DOWN,_unselect);
}

function _unselect(e:*){
mc3.removeEventListener(MouseEvent.MOUSE_DOWN,_select);
}

我的直觉告诉我,你可能已经在“mc3”上注册了不止一个鼠标按下的监听器。在不知道代码的全部范围的情况下,我建议您在将鼠标按下侦听器添加到mc3之前添加以下行

// This is the new line, it is just to remove any prior event registrations just to be safe.
this.mc3.removeEventListener(MouseEvent.MOUSE_DOWN,_select);
//This is the original line of the code, leave it as is
this.mc3.addEventListener(MouseEvent.MOUSE_DOWN,_select);