Flash as3 将一个类中的方法调用到另一个放在舞台上的类。
Posted
技术标签:
【中文标题】Flash as3 将一个类中的方法调用到另一个放在舞台上的类。【英文标题】:Flash as3 Calling methods in one class to another class which is placed on stage. 【发布时间】:2015-02-24 09:58:21 【问题描述】:我的主类添加了两个孩子,一个是画布,第二个是面板。
画布类:
在这个类中添加了一个对象,即文本字段,并在此处添加了一个方法“doBold”,因此该方法会将文本字段对象加粗。
面板类:
在面板类中,我有一个添加了鼠标事件侦听器的按钮。
现在我想通过单击放置在面板类中的按钮来调用 doBold 方法。我知道可以使用自定义事件来完成,但是可以使用界面吗?如果是的话,那会是怎样的......
提前致谢。
【问题讨论】:
请向我们展示您的代码 sn-p.. 最好我们帮助您提供实际代码... 【参考方案1】:实际上有多种方法可以做到这一点,具体取决于您的课程设置方式。
我假设你至少有一些类似的东西:
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 类中的公共变量。
所以在 Main 你会有类似的东西:
panel.myButton.addEventListener(MouseEvent.CLICK, onMouseClick);
...
private function onMouseClick(evt:MouseEvent)
canvas.doBold(evt.target);
【讨论】:
以上是关于Flash as3 将一个类中的方法调用到另一个放在舞台上的类。的主要内容,如果未能解决你的问题,请参考以下文章
flash as3 图片展示将鼠标移到图片上就显示文字,然后再点击文字后移除并且显示下一张图片
Flash AS3.0 - 错误 1180 调用可能未定义的方法 gotoAndPlay?