私はこのようなことをしようとしています:
var something = "someValue";
some_btn.onPress = function (something) {
someFunction(something);
}
function someFunction (argument) {
trace(argument);
}
しかし、それは「未定義」をトレースします。これを達成する正しい方法は何ですか?
私はこのようなことをしようとしています:
var something = "someValue";
some_btn.onPress = function (something) {
someFunction(something);
}
function someFunction (argument) {
trace(argument);
}
しかし、それは「未定義」をトレースします。これを達成する正しい方法は何ですか?
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");
これは、パラメーターに名前を付けたために、作成したグローバル変数名と同じになるために発生します。
var something = "someValue";
some_btn.onPress = function (something) { ...
これにより、同じ名前の「ローカル変数が作成されます」。ローカル変数には優先順位があり、onPress は値を送信しないため、undefined
.
解決するには、net.uk.sweet が提案したように、イベント ハンドラーから変数を削除します。
some_btn.onPress = function () { ...
これはうまくいきます:
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);
}