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

これにより、同じ名前の「ローカル変数が作成されます」。ローカル変数には優先順位があり、onPress は値を送信しないため、undefined.

解決するには、net.uk.sweet が提案したように、イベント ハンドラーから変数を削除します。

some_btn.onPress = function () { ...
于 2012-04-04T23:00:24.927 に答える
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 に答える