luaファイルにプラグインを注入する方法
1348 ワード
1.初心
久しぶりにブログを更新しましたが、前にluaメタテーブルに関することを書きましたが、メタテーブルについて理解していなければ、駅構内でluaのメタテーブルやマルチ継承を検索することができます.今、quick cocosでゲームを書いています.暇になったら、横になった穴を更新してもいいです.余計なことは言わないで、今cocosで開発して、歩く道は多く企画あるいは美術でインタフェース(cocos studio)をつづって、それからあちこちcsbファイルプログラムをロードして、更にインタフェースに対して各処理を行います(creatorは使ったことがありません).そこで質問です.一般的な方法では、csbをlayerのchildとして読み込んで、getChild(階層が深いかもしれません)、csb上のコントロールをsetString、setTextureなど、何度も現れる可能性がありますが、どうすればいいのでしょうか.
2.ソリューション
いくつかのソリューションを提供します.
3.プラグインの実現方法
とても簡単で、数歩しかかかりません.書き込みプラグイン、e.g: 注入 を使用することで、 を直接使用することができる.
4.まとめ
この注入法を用いると,コードの繰返し量を大幅に減らすことができ,多くの共通の方法を増やさずに安全で効率的であることができる.注入の方法はextのreturn関数に重点を置き,
久しぶりにブログを更新しましたが、前にluaメタテーブルに関することを書きましたが、メタテーブルについて理解していなければ、駅構内でluaのメタテーブルやマルチ継承を検索することができます.今、quick cocosでゲームを書いています.暇になったら、横になった穴を更新してもいいです.余計なことは言わないで、今cocosで開発して、歩く道は多く企画あるいは美術でインタフェース(cocos studio)をつづって、それからあちこちcsbファイルプログラムをロードして、更にインタフェースに対して各処理を行います(creatorは使ったことがありません).そこで質問です.一般的な方法では、csbをlayerのchildとして読み込んで、getChild(階層が深いかもしれません)、csb上のコントロールをsetString、setTextureなど、何度も現れる可能性がありますが、どうすればいいのでしょうか.
2.ソリューション
いくつかのソリューションを提供します.
* , csb ,
* , setString , setTexture
* local ,
* , ,layer
3.プラグインの実現方法
とても簡単で、数歩しかかかりません.
local ext = {}
function ext:setString()
-- do set string
end
return function (layer)
for k, v in pairs(ext) do
-- assert
assert(not layer[k], string.format("funciton %s exist", k))
layer[k] = v
end
end
local layer = display.newLayer()
require("ext")(layer)
layer:setString()
4.まとめ
この注入法を用いると,コードの繰返し量を大幅に減らすことができ,多くの共通の方法を増やさずに安全で効率的であることができる.注入の方法はextのreturn関数に重点を置き,
.
を用いる方法には別の書き方が必要である.暇な时間を待って、私はscene layerを管理するフレームワークを整理して、csbを読み取るなどのフレームワークをgithubに伝えます.