我有两个孩子的主要课程,一个是画布,第二个是面板。
Canvas类:
在这个类中添加了一个对象,即文本字段,此处添加了一个方法“doBold”,因此该方法将对文本字段对象进行粗体化。
小组类:
在面板类中,我有一个添加了鼠标事件监听器的按钮。
现在我想通过单击放置在面板类中的按钮来调用doBold方法。我知道可以使用自定义事件来完成,但可以使用界面吗?如果是,那么它将如何......
提前致谢。
答案 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:调度自定义事件
以下是有关设置详细信息的精彩教程: 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);
}