自定义事件未调度AS3

时间:2015-05-06 09:50:42

标签: actionscript-3 events custom-events event-dispatching

我有一个班级“商店”,我正试图派遣一个活动。以前,我已经完成了另一个班级“买家”,它可以工作,但同样的事情对我的新班级不起作用。

作为调度事件的商店类的功能:

        public function Select(event:MouseEvent):void
        {
            trace(ShopName);
            dispatchEvent( new SelectEvent(SelectEvent.SHOPSELECT,null,this));


        }

我运行时的代码,通过trace有效地显示“商店名称”,但它似乎没有派遣事件,否则,它被派遣但没有得到很好的回复。

回收Shop class调度事件的代码:

addEventListener(SelectEvent.SHOPSELECT,shopselected,true);

买方类'功能,其中相同的方法有效:

    public function Select(event:MouseEvent):void
        {
            trace(buyerCode);
            if(y>=377|| enteredmall)
            {
                dispatchEvent( new SelectEvent(SelectEvent.BUYERSELECT,this,null));
            }

        }

为买方类调度事件接收代码:

addEventListener(SelectEvent.BUYERSELECT,showselectbuyer,true);

这可以,但Shop类'没有。

两个类之间的唯一区别是CLICK位于不同的对象上。单击时,Buyer类的对象将调度该事件,但单击时,Shop Class的movieclip将调度该事件。

我已经了解了事件的冒泡,我想我在代码中做得很好。我已经阅读了这里提出的类似问题,但我无法理解如何继续解决方案,因为答案对我来说并不清楚。

如何使其适用于商店类?

其他信息:

选择事件类:

package 
{
    import flash.events.Event;
    import flash.utils.getQualifiedClassName;
    public class SelectEvent extends Event
    {
        public static const BUYERSELECT:String = "buyerselect";
        public static const SHOPSELECT:String = "shopselect";

        public var selectedbuyer:Buyer;
        public var selectedshop:Shop;



        public function SelectEvent(type:String, selectedbuyer:Buyer=null, selectedshop:Shop=null, bubbles:Boolean=false, cancelable:Boolean=false)
        {
            super(type,bubbles,cancelable);
            if(selectedshop==null)
            {
                this.selectedbuyer= selectedbuyer;
            }
            else
            {
                this.selectedshop= selectedshop;
            }


        }

        override public function clone():Event
        {
            return new SelectEvent (type, selectedbuyer, selectedshop ,bubbles, cancelable);
        }

    }

}

0 个答案:

没有答案