0

我正在尝试做这样的事情:

var something = "someValue";

some_btn.onPress = function (something) {
   someFunction(something);
}

function someFunction (argument) {
   trace(argument);
}

但它跟踪“未定义”。实现这一目标的正确方法是什么?

4

3 回答 3

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");
于 2012-04-04T23:57:37.463 回答
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);
}
于 2012-04-04T22:36:15.947 回答
0

发生这种情况是因为您将参数命名为您创建的全局变量名称:

var something = "someValue";
some_btn.onPress = function (something) { ...

这“创建了一个同名的局部变量”。由于局部变量具有偏好并且 onPress 不发送任何值,因此您得到了undefined.

要解决此问题,请按照 net.uk.sweet 的建议从事件处理程序中删除变量:

some_btn.onPress = function () { ...
于 2012-04-04T23:00:24.927 回答