活动调度员

时间:2017-05-22 08:54:59

标签: actionscript-3 flash actionscript flex3

我有两个课程,我尝试从一个班级到其他班级的事件调度。在这里,我使用按钮来调用类。但派遣不起作用。

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)时,它都不会显示任何内容  调度事件的痕迹。所以请分析并给出解决方案。

1 个答案:

答案 0 :(得分:1)

你的其他点击监听器(在EventDispatcherExample中)是否有效?

问题可能是您已将CusDispatcher声明为函数

中的局部变量
var start:CusDispatcher = new CusDispatcher();

一旦功能完成,这些变量就会被清除。尝试在类的开头将其声明为类变量:

private var start:CusDispatcher;

public function EventDispatcherExample(Mc:MovieClip)...

然后将新的Dispatcher分配给它

start = new CusDispatcher();