Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 AS3 OOP:按钮未显示_Actionscript 3_Oop_Actionscript - Fatal编程技术网

Actionscript 3 AS3 OOP:按钮未显示

Actionscript 3 AS3 OOP:按钮未显示,actionscript-3,oop,actionscript,Actionscript 3,Oop,Actionscript,我正在学习AS3 OOP并尝试做一些简单的事情,这里我只是尝试在舞台上添加一个按钮并处理点击事件 以下是我的简单代码: package { import flash.display.Stage; import flash.display.MovieClip; import flash.events.MouseEvent; public class External extends MovieClip { private var counter:

我正在学习AS3 OOP并尝试做一些简单的事情,这里我只是尝试在舞台上添加一个按钮并处理点击事件

以下是我的简单代码:

package
{
    import flash.display.Stage;
    import flash.display.MovieClip;
    import flash.events.MouseEvent;

    public class External extends MovieClip
    {

    private var counter:Number;
    public var HitButtonA:RedButton;

        public function External() // constructor
        {
         HitButtonA= new RedButton();
         HitButtonA.x = 40; 
         HitButtonA.y = 65; 
         addChild(HitButtonA);

         setupListeners();    
         counter=0;         
        }


    public function setupListeners()
    { trace("bbbb");
        HitButtonA.addEventListener(MouseEvent.CLICK, hitButtA);
    }

    public function hitButtA(e:MouseEvent)
    {
        //display.text=String(++counter);
        trace("aaaaa");
    }



    }
}

不幸的是,它甚至没有添加到舞台上的按钮,没有错误或任何东西。。。你知道怎么了吗?

这里有一些你可能会犯的错误:

  • External.as不是您的文档类,您还没有创建和/或将外部类对象添加到stage
  • 如果External.as是您设计的文档类,请检查它是否真的设置为文档类。如果您在“属性”面板中使用Flash Professional,请单击文档类输入框右侧的“编辑”按钮,如果创建了一个空白的生成类,那么您就找到了错误的来源
  • 检查是否可以仅通过框架脚本添加RedButton的实例

    var rButton:RedButton=newredbutton(); addChild(rButton)

除此之外,我认为您的代码没有问题


希望大家帮忙,祝好运

以下是您可能会犯的一些错误:

  • External.as不是您的文档类,您还没有创建和/或将外部类对象添加到stage
  • 如果External.as是您设计的文档类,请检查它是否真的设置为文档类。如果您在“属性”面板中使用Flash Professional,请单击文档类输入框右侧的“编辑”按钮,如果创建了一个空白的生成类,那么您就找到了错误的来源
  • 检查是否可以仅通过框架脚本添加RedButton的实例

    var rButton:RedButton=newredbutton(); addChild(rButton)

除此之外,我认为您的代码没有问题


希望大家帮忙,祝好运

好像你忘了将外部对象添加到舞台上

确保按如下方式添加:

var myExternal:External = new External();
stage.addChild(myExternal);
编辑:


谢谢!不管怎样,把这两行作为一行来做?所以我 实例化上面的内容,然后将其添加到后台

是的,如果不需要引用,只需调用
stage.addChild(newexternal())
或者,通过构造函数
var myExternal:External=new External(this.stage),可以将子级添加到stage中

然后需要修改构造函数,如下所示:

public function External(DisplayObject theStage) // constructor
    {
     HitButtonA= new RedButton();
     HitButtonA.x = 40; 
     HitButtonA.y = 65; 
     addChild(HitButtonA);

     setupListeners();    
     counter=0;
     theStage.addChild(theStage);
    }

然而,这不是一个很好的实践,因为它促进了一个由内而外的视角,这可能会在以后引起麻烦。

似乎您忘记了将外部对象添加到舞台上

确保按如下方式添加:

var myExternal:External = new External();
stage.addChild(myExternal);
编辑:


谢谢!不管怎样,把这两行作为一行来做?所以我 实例化上面的内容,然后将其添加到后台

是的,如果不需要引用,只需调用
stage.addChild(newexternal())
或者,通过构造函数
var myExternal:External=new External(this.stage),可以将子级添加到stage中

然后需要修改构造函数,如下所示:

public function External(DisplayObject theStage) // constructor
    {
     HitButtonA= new RedButton();
     HitButtonA.x = 40; 
     HitButtonA.y = 65; 
     addChild(HitButtonA);

     setupListeners();    
     counter=0;
     theStage.addChild(theStage);
    }

但是,,这不是一个很好的实践,因为它促进了一个由内而外的透视图,这可能会导致以后的问题。

您是否将FLA for RedButton中的ActionScript链接指向库中的任何MovieClip?我将其链接如下:您的RedButton类是否扩展了SimpleButton类?尝试在外部构造函数中放置一个跟踪,以查看它是否正确被恰当地调用。如果是这样,请确保正在将外部对象添加到该阶段;您是否曾经将其添加到stage.addChild(myExternalVarName)?您是否将FLA for RedButton中的ActionScript链接指向库中的任何MovieClip?我是这样链接的:您的RedButton类是否扩展了SimpleButton类?请尝试在外部构造函数中放置一个跟踪,以查看它是否被正确调用。如果是这样,请确保正在将外部对象添加到该阶段;您是否曾经将其添加到stage.addChild(myExternalVarName)?谢谢不管怎样,把这两行作为一行来做?因此,当我实例化上述内容时,它会被添加到舞台上?再次感谢!祝你今天愉快!谢谢不管怎样,把这两行作为一行来做?因此,当我实例化上述内容时,它会被添加到舞台上?再次感谢!祝你今天愉快!