AS3:来自班级的访问按钮

时间:2012-09-09 23:02:50

标签: actionscript-3 class button

所以我对AS3很新,但之前和AS2合作很多。 我已经创建了一个按钮并将其放在我的舞台上然后在我的课程中添加了这个:

    test.addEventListener(MouseEvent.CLICK, buttonClicked);
    function buttonClicked(ev:MouseEvent):void
    {
        trace("Clicked");
    }

现在这不起作用,因为它无法找到舞台,我可以让这个工作的唯一方法是,如果我把听众放在与按钮和放大器相同的框架上不在课堂上。

但必须避开这个。

谢谢。 利

更新 - 添加错误消息

如果我将上述代码全部保留在外部类中,则这些是我得到的错误。

  

第22行1120:访问未定义的属性测试。 22号线1120:访问   未定义的属性myButtonClick。

3 个答案:

答案 0 :(得分:1)

如果您创建了带有时间轴的文档类,那么您的“测试”按钮必须位于第一帧中。因为文档类从第一帧开始执行。只有在阶段可用时才能访问您的按钮实例。

哦,我忘了提。您必须在文档类中将这些实例声明为公共变量。

public var test:SimpleButton;

答案 1 :(得分:0)

您是否已在舞台上分配名称为“test”的按钮实例?您发布的错误消息似乎表示没有任何名称为“test”来分配事件监听器。

要检查,请单击舞台上的按钮,然后查看“属性”标签:如果需要分配,将显示在顶部附近的文本框中。

现在你发布的第二个错误意味着你指的是一个名为“myButtonClick”的东西而没有首先声明/初始化一个具有该名称的变量/函数。如果您想要引用其他内容,您将需要声明它或更正它。

答案 2 :(得分:0)

固定。

我像往常一样被rava愚蠢,忘了把它们放在init中:|

对于可能遇到此问题的人。
工作守则:

    public function Main()
    {
        // constructor code
        test.addEventListener(MouseEvent.CLICK, myButtonClick);

    }
        function myButtonClick(ev:MouseEvent):void
    {
        trace("button Clicked);
    }

无论如何,谢谢你们的帮助,有时候最简单的答案就是正确答案。

相关问题