我正在尝试做这样的事情:
var something = "someValue";
some_btn.onPress = function (something) {
someFunction(something);
}
function someFunction (argument) {
trace(argument);
}
但它跟踪“未定义”。实现这一目标的正确方法是什么?
答案 0 :(得分:1)
onPress()
不接受争论。
您可以按照以下方式制作自己的按键功能:
Object.prototype.myPress = function(str:String):Void
{
// Delete old onPress.
if(this["onPress"] != undefined) delete this.onPress;
// Add new onPress.
this.onPress = function():Void
{
someFunction(str);
}
}
使用someFunction()
:
function someFunction(str:String):Void
{
trace(str);
}
然后像这样实施:
some_btn.myPress("hello");
答案 1 :(得分:0)
这将有效:
var something = "someValue";
some_btn.onPress = function () {
someFunction(something);
}
function someFunction (argument) {
trace(argument);
}
或者,这也可以:
var something = "someValue";
some_btn.onPress = function () {
someFunction();
}
function someFunction () {
trace(something);
}
答案 2 :(得分:0)
这是因为您将参数命名为您创建的全局变量名称:
var something = "someValue";
some_btn.onPress = function (something) { ...
这个“创建一个具有相同名称的局部变量”。由于局部变量具有首选项且onPress不发送任何值,因此您获得了undefined
。
要解决此问题,请将此变量从事件处理程序中删除为net.uk.sweet建议:
some_btn.onPress = function () { ...