Flash as3将一个类中的方法调用到放置在舞台上的另一个类。

时间:2014-12-27 14:24:09

标签: flash events interface actionscript

我有两个孩子的主要课程,一个是画布,第二个是面板。

Canvas类:

在这个类中添加了一个对象,即文本字段,此处添加了一个方法“doBold”,因此该方法将对文本字段对象进行粗体化。

小组类:

在面板类中,我有一个添加了鼠标事件监听器的按钮。

现在我想通过单击放置在面板类中的按钮来调用doBold方法。我知道可以使用自定义事件来完成,但可以使用界面吗?如果是,那么它将如何......

提前致谢。

1 个答案:

答案 0 :(得分:0)

实际上,您可以通过多种方式执行此操作,具体取决于您设置类的方式。

我假设你至少有以下几点:

public class Canvas
{
   ...
    public function doBold() { 
       //some stuff
    }
   ...
}

-------

public class Panel 
{
    ....
    var myButton:Sprite = //definition details. 
    myButton.addEventListener(MouseEvent.CLICK, onMouseClick);
    ....
}

------

public class Main
{
   var canvas:Canvas = //instance of your canvas class
   var panel:Panel = //instance of your panel class
}

选项1:调度自定义事件

  • 设置自定义事件类
  • 初始化画布对象后,为该自定义事件设置侦听器
  • 甚至从Panel类中的onClickEvent发送。

以下是有关设置详细信息的精彩教程: http://code.tutsplus.com/tutorials/as3-101-events-basix--active-10018

选项2:最简单的方式,但不是很可扩展 您可以在主类中分配它,而不是在Panel类中为您的按钮设置事件侦听器。这将要求myButton是Panel类中的公共var。

所以在Main你会有类似的东西:

panel.myButton.addEventListener(MouseEvent.CLICK, onMouseClick);
...
private function onMouseClick(evt:MouseEvent) {
    canvas.doBold(evt.target);
}