public class MyQuad extends Sprite
{
public var quad:Quad;
private var lbl:Label;
public function MyQuad(lbl1:String,quadx:int,quady:int,lblx:int,lbly:int,btnx,btny)
{
super();
quad=new Quad(100,100,Color.WHITE);
this.addChild(quad);
quad.width=100;
quad.height=75;
quad.x=quadx;
quad.y=quady;
lbl=new Label();
lbl.text=lbl1;
lbl.x=lblx;
lbl.y=lbly;
this.addChild(lbl);
var btn:Button=new Button(Assets.getTexture("Add"));
btn.width=30;
btn.height=30;
btn.x=btnx;
btn.y=btny;
this.addChild(btn);
}
}
我有一个类sprite
,它包含许多显示对象(四边形,标签,按钮)。我将这个类称为另一个扩展screen
的类。在扩展屏幕的类中,我想在sprite类的按钮中添加一个触发器事件。如何调用该按钮或该按钮的触发事件?
答案 0 :(得分:0)
您应该公开访问该按钮。有几种方法可以做到这一点,但最直接的方法是按照你已经完成变量quad
的方式来做。
例如:
public class MyQuad extends Sprite
{
// ... other class variable definitions
public var btn:Button;
public function MyQuad(lbl1:String,quadx:int,quady:int,lblx:int,lbly:int,btnx,btny)
{
super();
// Set up your other items
btn = new Button(Assets.getTexture("Add"));
// Set the properties on your Button as usual
}
}
由于您现在已将btn
定义为班级中的public var
,现在可以通过引用此类的实例来公开访问。
例如:
var myQuad:MyQuad = new MyQuad(...);
myQuad.btn.addEventListener(Event.TRIGGERED, onButtonTriggered);
function onButtonTriggered(e:Event):void {
// Handle button triggered event
}