如果这是一个简单/愚蠢的问题,希望你能原谅我。我大约6天前开始学习动作脚本,并且已经开始了一个小项目:D
无论如何,有一个属性偶尔会改变以反映游戏中关卡的名称(object._I._M.text)。改变可能需要一分钟,或者最多两分钟,这取决于所有玩家能够以多快的速度完成关卡。
我希望能够侦听此属性中的更改以触发其他功能。我在网上找到的答案很少,我发现的例子非常不完整,写得很差。有谁知道我怎么能做到这一点?
我试过......
theobject._I._M.addEventListener(Event.CHANGE,myfunction);
没有成功。感谢您提供任何帮助或建议,我将在等待回复时回过头来学习:D
答案 0 :(得分:3)
我可能会使用getter / setter,或者只是声明一个方法来更改该文本字段的文本,以便每次都可以调度一个事件。
function changeLevel(text:String):void {
levelTf.text=text;
dispatchEvent(new Event("levelChange"));
}
答案 1 :(得分:1)
我同意Adobe文档有点“沉重”。 kirupa论坛是一个很好的资源。
对于TextField
更改事件侦听器,您的原始代码非常接近。 Here是如何添加事件侦听器的一个很好的示例。基础是:
public class Main extends Sprite {
// Store a reference to the text field
// (you're already doing this somewhere, so adapt as you see fit)
private var inputfield:TextField = new TextField();
public function Main() {
// Make sure the field is added to an on-screen Sprite
addChild(inputfield);
// Add the event listener.
// I recommend adding the 'false, 0, true' params. There are lengthy
// discussions around about this.
inputfield.addEventListener(Event.CHANGE, changeListener, false, 0, true);
}
// This function gets called every time the event is fired.
private function changeListener (e:Event):void {
trace("event");
}
}
希望这能让你开始朝着正确的方向前进。