未调用事件侦听器

马丁·杜波依斯(Martin Dubois)

我该如何解决我的问题?

当我单击按钮时,我会加载所有图像和图像按钮,但是此后,当我尝试单击关闭按钮(image4)时,事件侦听器将无法侦听,因为所有内容都在另一个函数中设置了。

private function onShop(evt:MouseEvent)
{
        shop.removeEventListener(MouseEvent.CLICK, onShop);

        var container:Sprite = new Sprite();
        var ibutton:Sprite = new Sprite();
        addChild(container);
        addChild(ibutton);
        ibutton.buttonMode = true;

        function loadImage(path:String):Loader
        {
           var request:URLRequest = new URLRequest(path);
           var loader:Loader = new Loader();
           loader.load(request);
           return loader;
        };

        var image1 = loadImage("image/inventory/shop_windoww.png");
        image1.x = 200;
        image1.y = 40;
        this.addChildAt(image1,8);
        var image2 = loadImage("image/inventory/title_window.png");
        image2.x = 200;
        image2.y = 14;
        container.addChild(image2);
        var image3 = loadImage("image/inventory/icon_window.png");
        image3.x = 177;
        image3.y = 7;
        container.addChild(image3);     
        var image4 = loadImage("image/inventory/close.png");
        image4.x = 891;
        image4.y = 39;
        ibutton.addChild(image4);       
        var image5 = loadImage("image/inventory/button_ok.png");
        image5.x = 450;
        image5.y = 485;
        ibutton.addChild(image5);       
        var image6 = loadImage("image/inventory/button_ok.png");
        image6.x = 782;
        image6.y = 485;
        ibutton.addChild(image6);       

        image4.addEventListener(MouseEvent.CLICK, test);

    }

    private function test(evt:MouseEvent)
    {
        image4.removeEventListener(MouseEvent.CLICK, test);
        trace("ca marche");
    }
加布里埃尔

在onShop范围之外声明变量。它们似乎更具有全局变量的意义,而不仅仅是局部变量(因为您尝试使用在test方法的onShop方法上声明的相同变量)。

我还建议您注意以下几点:

  • 使用外部文件(JSON / XML)获取所有图像URL,或仅使用带有硬编码内容的简单Array;
  • 使用for循环加载所有图像(遵循之前的建议);
  • 在测试方法中使用event.currentTarget,因此,您可以采用更通用的方式处理这些图像。

[event.currentTarget]正在使用事件侦听器主动处理Event对象的对象。例如,如果用户单击“确定”按钮,则当前目标可能是包含该按钮的节点或其已为该事件注册了事件侦听器的祖先之一。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Swing中临时禁用事件侦听器?

使用事件侦听器克隆引导程序元素

如何使用事件委托而不是将事件侦听器分别附加到每个项目?

使用事件侦听器切换状态类的活动/非活动状态

Material Design Lite-JS不应用事件侦听器

如何在Lit-HTML中使用事件侦听器添加和删除类?

FirebaseAuth侦听器未调用

如何将'this'绑定到单击侦听器并使用事件-ES6

OnChild事件侦听器被多次调用

使用事件侦听器在不使用jquery的情况下触发keypress事件

为什么在注册事件侦听器并触发事件侦听器之前调用滚动事件?

Symfony(5.1)主义事件侦听器被触发,但实体侦听器未触发

使用事件侦听器检测更改时,为什么图标类没有更改?

jQuery动态调用事件侦听器

AngularDart NgComponent在控制器中使用事件侦听器

事件未传递给侦听器

在事件侦听器回调中未调用Restify res.send()

在initComponent中声明时,事件侦听器未调用控制器方法

提交表单后未调用OnDemandGrid Dojo dgrid-select事件侦听器

在类方法中使用事件侦听器调用另一个返回未定义的类方法

laravel 5.4 使用事件和侦听器增加页面点击量

调用事件后等待事件侦听器完成

Javascript 事件侦听器未触发

仅在内部元素(Javascript)上调用事件侦听器

使用事件侦听器响应自定义下拉列表

在 Angular 中使用事件侦听器操作类

如何使用事件委托收听不同的侦听器

如何在 ReactJS 中使用事件侦听器?

事件侦听器未创建 cookie