繁体   English   中英

活动调度员

[英]Event dispatcher

我有两个类,我尝试了从一个类到另一个类的事件分发 在这里,我使用按钮来调用类。 但是调度不起作用。

class name cusDispatcher.as
 package 

{

import flash.display.MovieClip;
import flash.events.EventDispatcher;
import flash.events.Event;
import flash.events.MouseEvent;
import Globe;


public  class CusDispatcher extends EventDispatcher
{


    public function CusDispatcher():void
    {


        Globe.self.realstage.btn_mc.addEventListener(MouseEvent.CLICK, 
    doAction);


    }
    public function doAction(event:MouseEvent):void 
    {
        dispatchEvent(new Event('myevent'));

      }

  }

}

类名EventDispatcherExample.as包{

import flash.display.DisplayObject;
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.EventDispatcher;
import Globe;

public class EventDispatcherExample extends EventDispatcher
{


    public function EventDispatcherExample(Mc:MovieClip) 
    {
            Globe.self.realstage = Mc;
            var start:CusDispatcher = new CusDispatcher();

            Globe.self.realstage.addEventListener('myevent', handler);
            trace("one");

    }

    public function handler(event:Event):void
    {
        trace("My Event");


    }
 }
 }

在Adobe CC中,我使用了此实例来运行该类

var Call:EventDispatcherExample = new EventDispatcherExample(this);

每当我单击adobe flash cc中的按钮(btn_mc)时,它都不会显示任何调度事件的痕迹。因此,请对此问题进行分析并给出解决方案。

您的其他点击侦听器(在EventDispatcherExample中)是否正常工作?

问题可能是您已将CusDispatcher声明为函数中的局部变量

var start:CusDispatcher = new CusDispatcher();

函数完成后,将清除这些变量。 尝试在课程开始时将其声明为类变量:

private var start:CusDispatcher;

public function EventDispatcherExample(Mc:MovieClip)...

然后为其分配新的Dispatcher

start = new CusDispatcher();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM