精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

詳解在JAVA(J2ME)中使用Lua腳本引擎kahlua

移動(dòng)開發(fā) iOS
在JAVA(J2ME)中使用Lua腳本引擎kahlua是本文要介紹的內(nèi)容,主要是來學(xué)習(xí)JAVS中如何來使用LUA,具體內(nèi)容來看本文詳解。

JAVA(J2ME)中使用Lua腳本引擎kahlua是本文要介紹的內(nèi)容,主要是來學(xué)習(xí)JAVS中如何來使用LUALua有幸被暴雪選中,在魔獸中大量應(yīng)用,從而獲得了極快的發(fā)展,Lua也因此成為游戲、軟件開發(fā)中腳本語言的首選。Lua是一種十分簡(jiǎn)潔的腳本語言,不過寫起來并不是很簡(jiǎn)單,當(dāng)然過分的簡(jiǎn)化使得程序本身有些混亂。具體的語言教程在網(wǎng)上有很多,這里就不再說了。

kahlua最初是為J2ME設(shè)計(jì)的,現(xiàn)在已經(jīng)擴(kuò)展到J2SE,項(xiàng)目地址是http://code.google.com/p/kahlua/,在這里可以下載到源代碼及編譯好的jar包。在實(shí)際應(yīng)用中我發(fā)現(xiàn)J2ME中導(dǎo)入jar包很困難,弄了好幾天也沒有成功,只好將源代碼放在在工程的目錄里一同編譯。kahlua可以識(shí)別*.lua及*.lbc文件,*.lbc是編譯后的lua文件,項(xiàng)目中一般使用這種文件,因?yàn)椴粫?huì)泄露lua文件的內(nèi)容。可以到http://www.lua.org上下載一個(gè)lua的運(yùn)行環(huán)境,安裝后會(huì)自動(dòng)添加安裝路徑到系統(tǒng)變量,此時(shí)在cmd中運(yùn)行l(wèi)uac程序就可以編譯腳本,命令是luac -o f.lbc d:\f.lua,詳情看幫助文檔。

我下的kahlua是kahlua-release-20090611.zip源代碼包,解壓后是一個(gè)Ant工程,將src目錄下的內(nèi)容及resource中的stdlib.lua(lbc)文件復(fù)制到J2ME項(xiàng)目中src下。在編程之前首先說明一點(diǎn),在程序中指定文件的路徑時(shí)要注意對(duì)應(yīng)工程文件的位置。我的工程的src文件夾對(duì)應(yīng)程序中的根目錄,比如說上的/src/stdlib.lua在程序中就是/stdlib.lua。

lua腳本語言中一個(gè)獨(dú)特的數(shù)據(jù)類型就是表,表其實(shí)就是java中的map、哈希表,比如說下面一個(gè)表:

  1. T1 = {} -- 定義一個(gè)空表  
  2. T1[1]=10 --定義表的內(nèi)容  
  3. T1["John"]={Age=27Gender="Male"

而每一個(gè)腳本文件實(shí)際上就是一個(gè)大表,每一個(gè)變量、方法都是表的成員,因此腳本的變量默認(rèn)都是全局的,而且也可以定以方法為變量,kahlua正是依據(jù)這個(gè)概念來的。

1、初始化:

  1. LuaState state=new LuaState(System.out);  
  2. UserdataArray.register(state);  
  3. OsLib.register(state);  
  4. LuaCompiler.register(state); 

se.krka.kahlua.vm.LuaState對(duì)象是kahlua引擎的核心,一切操作都由它來完成,在生成LuaState對(duì)象后再進(jìn)行一些注冊(cè)。

2、獲取全局表:

  1. LuaTable table=state.getEnvironment();  
  2.  
  3. LuaTable有一系列函數(shù)添加、獲取腳本內(nèi)容,最常用的有:  
  4. void rawset(Object key, Object value);//添加內(nèi)容  
  5. Object rawget(Object key);//獲取內(nèi)容 

3、加載腳本:

  1. InputStream is=this.getClass().getResourceAsStream(scriptName);  
  2. //scriptName為腳本文件的路徑  
  3. LuaClosure closure=LuaCompiler.loadis(is , "lua" , table);  
  4. //LoadCompiler為編譯器,loadis為加載輸入流的方法  
  5. //is為輸入流;"lua"為編譯器的名字,好像任意字符串都可以;table為全局表  
  6. //LuaClosure為腳本編譯后的語句。 

整個(gè)腳本編譯后相當(dāng)于一個(gè)大的方法,并將其添加到全局表。

4、執(zhí)行腳本:

  1. sate.call(closure, null);  
  2. LuaState的public Object call(Object fun, Object[] args) 

方法是用來執(zhí)行全局表中的方法,前面說到,整個(gè)腳本編譯后是作為一個(gè)方法存入全局表的,因此也可以用這個(gè)方法執(zhí)行腳本。

5、方法:

public Object call(Object fun, Object[] args)中fun為函數(shù)對(duì)象,args為參數(shù)

(1)在Java中調(diào)用Lua方法

  1. state.call( table.rawget("say") , new String[]{"Hello!"}); 

即從全局表中取出函數(shù)并執(zhí)行。

(2)在Lua中調(diào)用Java方法

首先生成一個(gè)繼承自JavaFunction接口的類,然后添加到全局表中

JavaFunction只有一個(gè)public abstract int call(LuaCallFrame callFrame, int nArguments)方法,其中callFrame用于獲取輸入?yún)?shù)及指定返回值,nArguments獲取輸入?yún)?shù)數(shù)量。返回值為返回參數(shù)的個(gè)數(shù),因?yàn)閘ua函數(shù)可以有多個(gè)返回值的。

  1. class JavaFunctionSay implements JavaFunction{  
  2. public int call(LuaCallFrame frame, int arg) {  
  3. String str=BaseLib.rawTostring(frame.get(0));//獲取輸入?yún)?shù)  
  4. say(str);//執(zhí)行對(duì)應(yīng)Java內(nèi)容  
  5. frame.push("result");//返回參數(shù)  
  6. return 1;  
  7. }   

再用table.rawset("say", new JavaFunctionSay());添加到全局表,這樣就可以在對(duì)應(yīng)Lua腳本中使用say方法了。

附注:

kahlua顯示中文有問題,應(yīng)該是編碼不正確,修改LexState中String newstring( byte[] chars, int offset, int len )方法的第一行編碼為"GBK"后好像就可以了。
本人在windows中使用用luac生成的lbc時(shí)出錯(cuò)..文件不支持中文,有中文就會(huì)報(bào)錯(cuò),而英文就能順利通過,想來可能和字符編碼有關(guān)系...想在lbc中使用中文,本人的方法是:

  1. File luascript = new File("E:\\getWeather.lua");//--其實(shí)什么后綴名無所謂的  
  2. File lbcscript=new File("C:\\Users\\信豐boy\\getWeather.lbc");  
  3. closure = LuaCompiler.loadis(new FileInputStream(luascript), "信豐boy",table);//"信豐boy"這個(gè)字符串是可以隨意的.其作用是表示作用域.  
  4. OutputStream os=new FileOutputStream(lbcscript);  
  5. closure.prototype.dump(os);//這樣就把lbc格式的字節(jié)碼文件寫到"C:\\Users\\信豐boy\\getWeather.lbc"了.  
  6. os.close(); 

當(dāng)下次要調(diào)用的時(shí)候

  1. File lbcscript=new File("C:\\Users\\信豐boy\\getWeather.lbc");  
  2. closure = LuaPrototype.loadByteCode(new FileInputStream(lbcscript), table); 

ps:kuhlua不支持gfind函數(shù),所有你得用find函數(shù)ps:kuhlua不支持gfind函數(shù),所有你得用find函數(shù)。

小結(jié):詳解在JAVA(J2ME)中使用Lua腳本引擎kahlua的內(nèi)容介紹完了,希望通過本文的學(xué)習(xí)能對(duì)你有所幫助!

責(zé)任編輯:zhaolei 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-09-01 16:45:15

J2MELua

2010-09-30 11:16:53

J2ME Snake腳

2010-10-09 15:00:22

SnakeJ2ME

2010-09-29 08:57:04

J2ME前景

2009-06-17 11:27:00

setClip方法J2ME

2010-09-30 13:48:10

J2ME游戲引擎

2010-09-29 13:23:12

J2MEPIM

2010-09-29 10:41:18

J2MEJVM

2010-09-29 16:20:06

J2MEWeb服務(wù)API

2010-09-30 09:56:26

J2ME Polish

2009-07-09 16:06:10

JDK J2EE J2

2009-06-16 16:03:12

緩存J2ME

2010-09-30 12:53:00

J2MECSS

2010-09-30 11:04:53

J2MERMS

2010-09-29 09:19:39

J2ME開發(fā)工具

2010-09-30 13:39:52

2010-10-09 15:58:36

J2ME圖形

2010-09-30 13:28:55

J2ME圖形

2009-06-23 11:30:16

RMSJ2ME

2009-03-22 09:38:03

Android移植J2ME
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

7m精品福利视频导航| 日韩三级av在线播放| 欧美另类一区| 中文字幕有码视频| 91精品一区二区三区综合| 精品国产乱码久久久久久1区2区| 男人天堂999| 黄在线免费观看| 成人免费观看视频| 国产精品wwww| 精品少妇theporn| 国产精品一区高清| 欧美一区二区三区色| 97国产精东麻豆人妻电影| 里番在线观看网站| 91亚洲精品久久久蜜桃| 亚洲a在线观看| 国产一区二区视频网站| 牛夜精品久久久久久久99黑人| 日韩精品一二三四区| 九九热视频免费| 都市激情亚洲综合| 亚洲国产精品麻豆| 国产麻豆电影在线观看| 黄色免费在线播放| 成人动漫一区二区三区| 成人黄色av网站| 免费黄色av片| 国产亚洲一区在线| 欧美国产中文字幕| 国产日韩欧美在线观看视频| 国产精品一区高清| 精品亚洲一区二区三区四区五区| 丰满人妻一区二区三区大胸 | 国产精品日日摸夜夜摸av| 国产精品免费观看高清| 国产理论视频在线观看| 日本强好片久久久久久aaa| 97高清免费视频| 国产一级片网址| 欧美a级一区| 久久九九热免费视频| 免费黄色片网站| 自拍偷拍欧美一区| 亚洲国产一区二区三区四区| 黄页网站在线看| 免费观看亚洲天堂| 欧美一区二区在线不卡| 天堂在线一区二区三区| 啪啪av大全导航福利综合导航| 欧美午夜精品一区二区蜜桃| 韩国日本在线视频| 午夜无码国产理论在线| 色婷婷av一区二区| 免费看国产黄色片| 精品福利在线| 欧美日韩大陆一区二区| 色91精品久久久久久久久| 国产精品亚洲成在人线| 欧美日韩亚洲综合| 色一情一区二区三区| 色999韩欧美国产综合俺来也| 欧美性猛交一区二区三区精品| 乱子伦视频在线看| 国产v综合v| 精品视频一区二区不卡| 亚洲欧美手机在线| 日本综合精品一区| 日韩第一页在线| 日韩人妻无码精品综合区| 日韩av有码| 久久人体大胆视频| 欧美成人精品欧美一级| 999亚洲国产精| 日韩免费不卡av| 在线观看xxxx| 国产iv一区二区三区| 精品国产乱码久久久久| 国产一二三在线观看| 国产精品入口麻豆原神| 久久久国内精品| 麻豆理论在线观看| 欧美伊人久久久久久久久影院| 一女二男3p波多野结衣| 亚洲码欧美码一区二区三区| 日韩高清免费在线| 日本精品久久久久中文| 欧美激情无毛| 欧美在线国产精品| 亚洲熟妇无码久久精品| 懂色av中文字幕一区二区三区| 久久国产手机看片| 欧美成人hd| 午夜欧美在线一二页| 能看的毛片网站| 麻豆国产一区| 亚洲美女性视频| 日韩一级片大全| 亚洲国产精品第一区二区三区| 奇米四色中文综合久久| 国产精品嫩草影院桃色| caoporn国产一区二区| 视频一区二区在线| 1区2区在线| 欧美疯狂做受xxxx富婆| 美国黄色a级片| 欧美阿v一级看视频| 欧美中文在线字幕| www三级免费| 中文av一区特黄| 免费一级特黄毛片| 国产亚洲亚洲国产一二区| 亚洲另类激情图| 国产va在线播放| 日本三级亚洲精品| 久久久久综合一区二区三区| 日本色护士高潮视频在线观看| 欧美综合欧美视频| 极品人妻一区二区三区| 在线成人超碰| 国产精品丝袜白浆摸在线| 人妻精品一区二区三区| 亚洲免费观看高清完整版在线观看 | 成人午夜精品无码区| 91蜜臀精品国产自偷在线 | 亚洲欧美专区| 亚洲区中文字幕| 欧美不卡视频在线观看| 国产99久久久国产精品潘金网站| 在线观看成人av| 日韩视频网站在线观看| 日韩国产精品一区| 国产精品6666| 国产成人自拍网| 国产欧美自拍视频| 欧美一级做一级爱a做片性| 国产亚洲人成a一在线v站| 久久免费激情视频| 不卡的av网站| 久久这里只有精品18| 一区二区三区亚洲变态调教大结局 | av电影中文字幕| 国产精品久久久久蜜臀| 国产欧美精品久久久| 国产福利在线视频| 色婷婷av一区二区三区大白胸| 色婷婷av777| 另类天堂av| 欧美精品一区二区视频 | 精品国产乱码久久久久久虫虫漫画| 蜜桃视频无码区在线观看| 亚洲一区在线| 亚洲在线一区二区| 污视频在线免费观看网站| 日韩手机在线导航| 国产亚洲欧美精品久久久www | 亚洲国产午夜| 精品无码久久久久国产| 六月婷婷综合| 夜夜躁日日躁狠狠久久88av| 中文亚洲av片在线观看| 国产精品国产三级国产aⅴ中文 | 中文字幕精品一区久久久久| 在线观看毛片网站| 中文字幕欧美日韩一区| 天天操狠狠操夜夜操| 99久久夜色精品国产亚洲狼| 91在线视频免费| 国产乱码在线| 日韩精品极品视频| 18国产免费视频| 自拍偷在线精品自拍偷无码专区| 亚洲精品中文字幕乱码无线| 尤物精品在线| 欧美日韩一区二区三区免费| 欧洲av一区二区| 精品国产一区二区三区久久久狼| 国产成人三级一区二区在线观看一| 夜夜夜精品看看| 国产麻豆xxxvideo实拍| 久久最新视频| 在线播放 亚洲| 加勒比色老久久爱综合网| 国产成人在线视频| av在线免费播放| 精品伊人久久97| 一二三四区在线| 亚洲一区二区三区四区五区黄| 五月婷婷综合在线观看| 久久精品国产在热久久| 国产日韩欧美精品在线观看| 欧美日韩精品一区二区视频| 亚洲一区二区三区视频播放| 亚洲美女炮图| 久久综合久久美利坚合众国| 日本人妻熟妇久久久久久| 欧美午夜精品电影| 国产一级免费av| 中文字幕巨乱亚洲| 亚洲熟妇一区二区| 日韩高清在线一区| 成年人看的毛片| 成人在线免费观看视频| 国产区一区二区| 亚洲成人高清| 国产91在线播放精品91| 三级网站视频在在线播放| 国产亚洲xxx| 五月激情丁香婷婷| 欧美一二区视频| 欧美成人精品网站| 亚洲成av人片一区二区梦乃| 手机在线中文字幕| 国产亚洲精品aa午夜观看| 苍井空张开腿实干12次| 久久99精品久久久久久久久久久久 | 亚洲高清无码久久| 国内精品免费在线观看| 色七七在线观看| 在线亚洲欧美| 男人添女人下部视频免费| 97精品国产福利一区二区三区| 久久一区二区精品| jizz性欧美2| 91在线视频导航| 欧美亚洲黄色| 国产精品美女无圣光视频| 亚洲欧美韩国| 国内精品久久久久久影视8| 曰本三级在线| 免费91麻豆精品国产自产在线观看| 国产尤物视频在线| 亚洲另类欧美自拍| 青青草免费在线视频| 日韩电影中文字幕一区| 欧美熟女一区二区| 精品久久久久久最新网址| www.色呦呦| 欧美一区二区女人| 国产色综合视频| 777a∨成人精品桃花网| 11024精品一区二区三区日韩| 在线一区二区视频| 自拍偷拍色综合| 欧美影院一区二区三区| 在线不卡免费视频| 欧美日韩国产a| 中文字幕乱码人妻无码久久 | 午夜dv内射一区二区| 欧美专区在线| 亚洲成熟丰满熟妇高潮xxxxx| 另类激情亚洲| 欧美日韩一区二区三区69堂| 美女一区二区三区在线观看| 午夜视频在线网站| 国产一区二区三区蝌蚪| 国产精品久久久久野外| 成人免费毛片高清视频| 日韩av无码一区二区三区不卡| av电影天堂一区二区在线| 粉嫩av懂色av蜜臀av分享| 91视频.com| 日韩女同一区二区三区| 国产精品入口麻豆原神| jizz亚洲少妇| 五月婷婷色综合| av一级在线观看| 欧美精品乱人伦久久久久久| 99热这里只有精品99| 精品免费日韩av| 欧美挠脚心网站| 在线视频精品一| 怡红院在线播放| 欧美性视频网站| 成人性片免费| 亚洲在线视频福利| 香蕉久久夜色精品国产使用方法 | 99蜜桃在线观看免费视频网站| y111111国产精品久久久| 久久免费看av| 97视频精品| 成人一区二区免费视频| 日韩不卡一区二区三区| 中文字幕乱妇无码av在线| 91色porny在线视频| 欧美特黄一级片| 懂色av中文一区二区三区天美| 亚洲精品国产精品乱码视色| 日韩欧美中文字幕公布| 免费国产在线观看| 欧美成人免费全部| 三级成人黄色影院| 成人综合网网址| 国产精品最新| 国产乱人伦精品一区二区三区| 日产欧产美韩系列久久99| 老司机av网站| 国产精品亲子伦对白| 日本一区二区三区四区五区| 欧美性猛交xxxx乱大交退制版| 亚洲奶汁xxxx哺乳期| 综合136福利视频在线| 黄视频网站在线观看| 亚洲一区二区在线| 精品国产一区二区三区| 国产高清av在线播放| 精品一区二区三区欧美| a天堂中文字幕| 图片区小说区区亚洲影院| 国产绿帽一区二区三区| 亚洲无限av看| 欧美激情20| 成人动漫在线观看视频| 欧美独立站高清久久| 国产v亚洲v天堂无码久久久| 成人手机在线视频| 欧美人禽zoz0强交| 欧美三级中文字幕在线观看| 亚洲av电影一区| 欧美精品第一页在线播放| 国产精品一区二区三区www| 日本一区二区三区免费观看| aⅴ色国产欧美| 精品人妻二区中文字幕| ㊣最新国产の精品bt伙计久久| 国产精品无码粉嫩小泬| 亚洲毛片在线免费观看| 美女搞黄视频在线观看| 成人性色av| 欧美亚洲不卡| 日本55丰满熟妇厨房伦| 亚洲天堂2016| ,亚洲人成毛片在线播放| 色多多国产成人永久免费网站 | 91久久精品一区二区三| 天堂在线中文资源| 午夜精品蜜臀一区二区三区免费| 88久久精品| 好吊色视频988gao在线观看| 国产一区二区在线视频| 91久久久久久久久久久久久久 | www久久久com| 欧美大尺度在线观看| 久久影院一区二区三区| 黄色一级片av| 国产成+人+日韩+欧美+亚洲| 欧美毛片在线观看| 精品久久一区二区| 97久久人人超碰caoprom| 97人人模人人爽人人喊38tv| 国产字幕视频一区二区| 在线观看免费视频国产| 欧美日韩精品二区| 日本免费一区二区三区最新| 国产精品91在线| 波多野结衣一区| 污视频网址在线观看| 亚洲激情自拍偷拍| 亚洲欧美激情国产综合久久久| 久久久久这里只有精品| 亚洲精品小区久久久久久| 日本中文字幕高清| 成人免费小视频| 国产黄色大片网站| 91精品国产91久久| 久久91精品| 日本xxxx黄色| 亚洲精品国产一区二区精华液| 亚洲av综合色区无码一区爱av| 国语自产在线不卡| 米奇777超碰欧美日韩亚洲| 天堂一区在线观看| 亚洲国产裸拍裸体视频在线观看乱了| 天天干天天摸天天操| 国产精品91一区| 欧美精品大片| 老鸭窝一区二区| 欧美一区二区国产| 玖玖在线播放| 一区二区三区四区视频在线| 国产suv精品一区二区三区| 日本视频在线观看免费| www国产精品视频| 成人在线视频你懂的| 国产精品动漫网站| 亚洲免费观看高清完整版在线观看 | 日本在线观看一区| 国产一区二区精品久久91| 日韩黄色一级大片| 少妇高潮久久77777| 成人爽a毛片| 天美星空大象mv在线观看视频| 亚洲欧美视频一区| 欧美黄色小说| 电影午夜精品一区二区三区| 日韩在线观看一区二区| 青娱乐国产精品| 国产一区二区三区在线观看网站| 日韩一区二区三区高清在线观看| 国产淫片av片久久久久久|