Actionscript 3 AS3 OOP:按钮未显示
我正在学习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:
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)?谢谢不管怎样,把这两行作为一行来做?因此,当我实例化上述内容时,它会被添加到舞台上?再次感谢!祝你今天愉快!谢谢不管怎样,把这两行作为一行来做?因此,当我实例化上述内容时,它会被添加到舞台上?再次感谢!祝你今天愉快!