皆さんありがとうございます。
> そのままで動いた
空のプロジェクトで試したら実行できました!
> objectBでwith無しでabc();で動く
これもできました! with(objectA)要らないんですね!
あと変数abcに入れた関数はscript_execute(abc)じゃなくて直接abc();で動くんですね!
では、なぜ自分のプロジェクトでは動かないのか。
objectBを作る部分を関数にしているとエラーになることが分かりました。
質問を簡潔にしようと思って、関数内に書いている事実を省略していました。
実際は下記のようにして、player操作でhoge()を実行する形にしていました。
objectAのCreateイベント
function hello() {
show_message("hello");
}
function hoge() {
var _o = instance_create_depth(0, 0, 0, objectB);
_o.abc= hello;
}
こうするとhoge()を実行するとエラーになります。
エラー:script_execute argument 1 unable to convert to integer, result is nan
インスタンス関数のスコープについてちゃんと理解できてないのかもしれません。
試しに、こうやってみました。
objectAのCreateイベント
function hello() {
show_message("hello");
}
scr1 = hello; // ここで変数に入れる
function hoge() {
var _o = instance_create_depth(0, 0, 0, objectB);
_o.abc= scr1;
}
こうしたら動きました。
まだ勉強が必要なようです。
通報 ...