0

まず、でtxtfieldを作成し_txtbtnます。次に、任意のmcを選択し、それらに多くのリスナーを作成します。そして今、私はをクリックしたときにリスナーを削除したいと思います_can。そこで_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);
}
4

1 に答える 1

0

私の直感では、「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);
于 2013-02-04T16:39:51.583 に答える