如何将参数传递给AS2中的.onPress()?

时间:2012-04-04 17:34:51

标签: flash function actionscript-2

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

var something = "someValue";

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

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

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

3 个答案:

答案 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 () { ...