[過去ログ]
■吉里吉里/KAG/TJS雑談質問スレ■その24 (1001レス)
■吉里吉里/KAG/TJS雑談質問スレ■その24 http://echo.5ch.net/test/read.cgi/gamedev/1307083588/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
必死チェッカー(本家)
(べ)
自ID
レス栞
あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
844: 名前は開発中のものです。 [sage] 2011/11/14(月) 18:05:26.15 ID:BTN1g4v3 >>842 直接書いてるのはそりゃその場で実行されて結果のvoid が exp に入ってるだけだろう。 全然正常に動いてないと思われ Scripts.eval は通常グローバルコンテキストで動くから、 グローバルなもの以外は渡してもオブジェクトが無いっていわれるだけだよ 方法論1 : そもそも Scripts.eval を使わない exp に登録するのを動的関数にする 子レイヤ.exp = function() { parent.show(num); } incontextof 子レイヤ; 子レイヤ中からは以下のように呼び出す if (exp !== void) exp(); 方法論2: 最新βの吉里吉里は Scripts.eval にコンテキスト指定の引数が増えてるのでそれを使う 子レイヤ.exp = "parent.show(num)"; 子レイヤ中から呼び出す場合は以下の通り Scripts.eval(exp,,,this); 引数の意味は以下の通り Scripts.eval(式, エラー用ファイル名, エラー用行番号, 実行コンテキスト) http://echo.5ch.net/test/read.cgi/gamedev/1307083588/844
845: 名前は開発中のものです。 [sage] 2011/11/14(月) 18:17:59.35 ID:BTN1g4v3 もう一つあったわ。 方法論3 実行時に関数構築 子レイヤ.exp = "parent.show(num)"; 呼び出し場所での処理 var f = Scripts.eval("function(){" + exp + ";}"); (f incontextof this)(); http://echo.5ch.net/test/read.cgi/gamedev/1307083588/845
848: 名前は開発中のものです。 [sage] 2011/11/14(月) 19:44:49.77 ID:BTN1g4v3 >>846 num の値が生成時に指定したもので固定でいいのなら、単順に 子レイヤ.exp = "parent.show(" + num + ")"; でいいんでは? 文字列加算は対応がわかりにくくなるので、「@つき文字列即値」を使って 子レイヤ.exp = @"parent.show(${num})"; とかするのがお奨め num が親側にあって動的にかわるなら、1. の方法で 子レイヤ.exp = function() { self.parent.show(owner.num); } incontextof %[ self:子レイヤ, owner:this ]; とかやって全部コンテキストにしこんで渡すしかないね。 http://echo.5ch.net/test/read.cgi/gamedev/1307083588/848
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.029s