我可以像使用变量一样创建对象时设置函数吗?
鉴于我有一个容器类和一个 CustomButton 类:
function doSomething():Void{}
var button:CustomButton = CustomButton{
posX : 50;
posY = 100;
onMouseClicked: doSomething;
}
短篇小说:我需要主容器对象来处理放置在容器中的对象中发生的鼠标事件。
我可以像使用变量一样创建对象时设置函数吗?
鉴于我有一个容器类和一个 CustomButton 类:
function doSomething():Void{}
var button:CustomButton = CustomButton{
posX : 50;
posY = 100;
onMouseClicked: doSomething;
}
短篇小说:我需要主容器对象来处理放置在容器中的对象中发生的鼠标事件。
如果我正确理解了您的要求,我认为可以通过一些语法更改来实现。显然,如果您需要自定义版本,您可以扩展 Button:
function doSomething():Void{
println("clicked");
}
var button:Button = Button{
text: "Click Me"
translateX: 50;
translateY: 100;
action: doSomething
}
Stage {
title : "ButtonTest"
scene: Scene {
width: 200
height: 200
content: [ button ]
}
}
对您来说最简单的更改是更改:
function doSomething():Void{}
至
function doSomething(e:MouseEvent):Void{}
action 属性很好,但我确定你想要一些自定义翻转效果或使用 onMouseEntered 等的东西。