function Drag(event:MouseEvent):void {
if ((event.target.parent == InventoryMenu) && (event.target is 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 is item)) {
var dropped:item = item(event.target);
if ((event.target is 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"));
}
}
}
}
}由于某些原因,InventoryArrowDown和InventoryArrowUp上的removeEventListener无法工作。我相当确定路由是正确的,因为它是从addEventListener直接复制粘贴的,并且它不使用变量。
有什么问题的线索吗?
发布于 2013-05-10 08:57:04
如果不看InventoryNav的代码就很难帮到你,但问题可能是你应该在测试之前删除事件侦听器。
此外,您应该编写两个不同的处理程序,而不是像您那样使用一个处理程序并传递参数。
以下是您的代码的修改版本,可能会有所帮助:
private function drag(event:MouseEvent):void {
if ((event.target.parent == inventoryMenu) && (event.target is 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 is Item)) {
var dropped:Item = Item(event.target);
if ((event.target is 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");
}
}
}
}https://stackoverflow.com/questions/16464824
复制相似问题