actionscript 3 - removeEventListener not working -


function drag(event:mouseevent):void {     if ((event.target.parent == inventorymenu) && (event.target item)) {         var picked:item = item(event.target);         stage.addeventlistener(mouseevent.mouse_up, drop);         inventoryarrowdown.addeventlistener(mouseevent.mouse_over, inventorynav("down"));         inventoryarrowup.addeventlistener(mouseevent.mouse_over, inventorynav("up"));          function drop(event:mouseevent):void {             if ((event.target.parent == inventorymenu) && (event.target item)) {                 var dropped:item = item(event.target);                           if ((event.target item) && (event.target.parent == inventorymenu)) {                     if (picked.itemdata("workswith") == dropped.name) {                         var itemname:item = item(fetchresult(picked, dropped));                         itemname.addchild(itemname.itemdata("filename"));                         inventorymenu.removechild(picked);                         inventorymenu.removechild(dropped);                         inventorymenu.addchild(itemname);                         inventoryupdate();                     } else if (picked.name != dropped.name) {                         trace("no son compatibles");                     }                     stage.removeeventlistener(mouseevent.mouse_up, drop);                     inventoryarrowdown.removeeventlistener(mouseevent.mouse_over, inventorynav("down"));                     inventoryarrowup.removeeventlistener(mouseevent.mouse_over, inventorynav("up"));                 }             }         }     } } 

for reason removeeventlistener on inventoryarrowdown , inventoryarrowup isn't working. i'm sure route correct it's direct copy paste addeventlistener , uses no variables.

any clue what's wrong?

hard without seeing code of inventorynav maybe issue should remove event listeners before tests.

also, should write 2 different handlers instead of using 1 , passing argument do.

here modified version of code might help:

private function drag(event:mouseevent):void {     if ((event.target.parent == inventorymenu) && (event.target item)) {         var picked:item = item(event.target);         stage.addeventlistener(mouseevent.mouse_up, drop);         inventoryarrowdown.addeventlistener(mouseevent.mouse_over, inventorynavdown);         inventoryarrowup.addeventlistener(mouseevent.mouse_over, inventorynavup);     } }  private function drop(event:mouseevent):void {     stage.removeeventlistener(mouseevent.mouse_up, drop);     inventoryarrowdown.removeeventlistener(mouseevent.mouse_over, inventorynavdown);     inventoryarrowup.removeeventlistener(mouseevent.mouse_over, inventorynavup);      if ((event.target.parent == inventorymenu) && (event.target item)) {         var dropped:item = item(event.target);                   if ((event.target item) && (event.target.parent == inventorymenu)) {             if (picked.itemdata("workswith") == dropped.name) {                 var itemname:item = item(fetchresult(picked, dropped));                 itemname.addchild(itemname.itemdata("filename"));                 inventorymenu.removechild(picked);                 inventorymenu.removechild(dropped);                 inventorymenu.addchild(itemname);                 inventoryupdate();             } else if (picked.name != dropped.name) {                 trace("no compatible sons");             }         }     } } 

Comments

Popular posts from this blog

linux - xterm copying to CLIPBOARD using copy-selection causes automatic updating of CLIPBOARD upon mouse selection -

c++ - qgraphicsview horizontal scrolling always has a vertical delta -