精品欧美一区二区三区在线观看 _久久久久国色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)

国产精品免费精品自在线观看| 色猫av在线| 国产精品第十页| 亚洲国产精品成人av| 免费看一级大黄情大片| 久草福利在线| 国产精品综合久久| 91av在线看| 五月激情四射婷婷| 99国产精品久久一区二区三区| 日韩欧美第一页| 青青草影院在线观看| 手机看片福利永久| 久久精品国产99久久6| 欧美激情影音先锋| 激情五月深爱五月| 丁香综合av| 欧美人与性动xxxx| 香港三级韩国三级日本三级| 国产高清一区二区三区视频| 久久亚洲春色中文字幕久久久| 91日韩久久| 日本成人一级片| 亚洲网站在线| 久久精品视频网站| 最新中文字幕视频| 超碰精品在线观看| 欧美日韩电影一区| 能在线观看的av网站| 国产蜜臀在线| 1000精品久久久久久久久| 欧美日韩免费高清| 色综合视频在线| 国产99精品视频| 国产日韩视频在线观看| 亚洲免费激情视频| 欧美精品一卡| 久久影院中文字幕| 国产99在线 | 亚洲| 午夜精品福利影院| 亚洲精品一区二区三区香蕉| 亚洲天堂一区二区在线观看| 国产成人精品一区二区三区免费| 一本色道**综合亚洲精品蜜桃冫| 国产二区视频在线| 日本动漫同人动漫在线观看| 中文字幕一区免费在线观看| 亚洲国产一区二区三区在线 | 黄网站在线观| 亚洲视频免费看| 亚洲一区影院| 日韩黄色影院| 国产欧美久久久精品影院| 欧美另类一区| 九一在线视频| 中文字幕av资源一区| 亚洲国产精品日韩| 日本中文在线观看| 国产精品高潮呻吟| 亚洲蜜桃av| 日韩欧美小视频| 亚洲欧洲av另类| 老司机午夜网站| 视频在线观看入口黄最新永久免费国产| 亚洲日本青草视频在线怡红院| 超碰在线免费观看97| h网站久久久| 亚洲制服丝袜av| 岛国大片在线播放| 亚洲一级少妇| 欧美性猛交xxxxxxxx| 亚洲人视频在线| 136福利精品导航| 日韩精品在线观看一区| 人人人妻人人澡人人爽欧美一区| 精品国产一区二区三区av片| 日韩中文有码在线视频| 欧美xxxooo| 午夜久久99| 97在线免费观看视频| www五月天com| 精品影视av免费| 超碰国产精品久久国产精品99| 欧洲精品久久一区二区| 久久久久久麻豆| 一区二区三区视频| 黄页视频在线播放| 亚洲香蕉伊在人在线观| 欧美成人精品欧美一级乱| 国产91在线播放精品| 日韩欧美一区二区免费| 国产又黄又粗又猛又爽的视频| 亚洲精品进入| 久久精品亚洲热| 国产手机在线视频| 免费人成网站在线观看欧美高清| 92国产精品视频| 涩涩视频在线观看免费| 中文字幕一区视频| 欧美国产亚洲一区| 日韩成人在线一区| 亚洲国产黄色片| 国产精品69久久久久孕妇欧美| 亚洲特级毛片| 国产精品丝袜视频| 欧洲精品久久一区二区| 国产精品久久精品日日| aa在线观看视频| 96sao精品免费视频观看| 日韩电视剧免费观看网站| 日韩三级久久久| 免费看黄裸体一级大秀欧美| 96久久精品| 97视频在线观看网站| 黄色一区二区在线| 五月天婷婷影视| 欧洲激情综合| 欧美一区深夜视频| 99久久婷婷国产一区二区三区| 2021国产精品久久精品| 欧美久久在线观看| а天堂中文最新一区二区三区| 亚洲欧美在线免费观看| 久久影院一区二区| 精品亚洲成a人| 日韩欧美亚洲v片| 在线黄色的网站| 亚洲国产精品成人av| 久久久久久久久97| 国产一区二区0| 欧美爱爱视频网站| 欧美aaaaaa| 一本久久综合亚洲鲁鲁| 日本韩国欧美中文字幕| 成人性生交大片免费| 超碰免费在线公开| 日韩三级成人| 少妇激情综合网| 自拍偷拍校园春色| 91蝌蚪porny成人天涯| 欧美视频免费看欧美视频| 亚洲国产中文在线| 欧美xxxx综合视频| 99热这里只有精品5| 亚洲精品乱码久久久久久黑人| www.se五月| 国产精品精品| 成人精品视频在线| 求av网址在线观看| 51精品视频一区二区三区| 四虎影视1304t| 久久99蜜桃精品| a级黄色片网站| 国产在线不卡一区二区三区| 久久亚洲国产成人| 99国产精品久久久久久久成人| 亚洲欧美一区二区在线观看| 免费成人黄色大片| 欧美黄免费看| 国精产品一区二区| 欧美中文字幕精在线不卡| 一区二区三区视频观看| 在线视频你懂得| ●精品国产综合乱码久久久久| 波多野结衣在线免费观看| 欧美日韩亚洲一区三区| 九色综合婷婷综合| 亚洲精品国产嫩草在线观看| 一区二区欧美亚洲| 97精品久久人人爽人人爽| 亚洲人成亚洲人成在线观看图片| 中文字幕avav| 日韩视频一区二区三区在线播放免费观看| 国产一区二区免费电影| 中文字幕在线看片| 色播久久人人爽人人爽人人片视av| 一级特黄aaaaaa大片| 亚洲精品国产一区二区精华液 | av不卡一区| 26uuu日韩精品一区二区| 福利片在线看| 欧美大片顶级少妇| 九九热在线免费观看| 国产精品沙发午睡系列990531| 网站在线你懂的| 亚洲精品欧美| 亚洲欧美国产不卡| jizz18欧美18| 国产精品美女主播| 伊人影院在线视频| 亚洲免费一在线| 国产乱叫456在线| 日韩欧美国产一区二区| 国产黄色片在线| av在线不卡电影| 天天干天天av| 麻豆91精品| 日韩欧美视频免费在线观看| 国产欧美日韩在线观看视频| 51国产成人精品午夜福中文下载 | 亚洲在线观看视频| 亚洲欧洲高清| 久久91亚洲精品中文字幕奶水| 日本午夜在线| 91麻豆精品国产91久久久久久| 国产又爽又黄的视频| 综合久久综合久久| 欧美日韩高清丝袜| 成人午夜大片免费观看| 国产福利在线免费| 香蕉久久a毛片| 欧美一二三不卡| 99久久九九| 日本精品一区二区| 精品亚洲自拍| 97久久夜色精品国产九色| 激情亚洲影院在线观看| 97国产精品久久| 韩国av网站在线| 中国日韩欧美久久久久久久久| 日本韩国免费观看| 日韩欧美精品在线视频| 亚洲无码精品在线观看| 日韩欧美国产中文字幕| 日韩成人一区二区三区| 一区二区三区四区乱视频| 国产18无套直看片| 国产午夜精品一区二区| 99久久人妻精品免费二区| 国产成人在线免费| 午夜天堂在线视频| 欧美aa在线视频| 国产一区二区视频免费在线观看| 亚洲精品日本| 免费毛片网站在线观看| 午夜精彩国产免费不卡不顿大片| 亚洲人体一区| 四虎成人av| 亚洲欧洲一区二区| 俺要去色综合狠狠| 日本一区高清不卡| 亚洲综合图色| 欧美日韩精品一区| 影视先锋久久| 欧美一进一出视频| 精品国产91| 亚洲国产欧美日韩| 日韩综合一区| 欧美日韩一级在线| 午夜激情久久| 777久久精品一区二区三区无码| 欧美在线精品一区| 9色porny| 国产亚洲激情| 五月婷婷深爱五月| 日本aⅴ精品一区二区三区 | 伊人久久大香| 91香蕉电影院| 88久久精品| 精品久久中出| 国产精品一区二区av日韩在线 | 国精产品一区一区三区免费视频| 99久久夜色精品国产网站| 搡老熟女老女人一区二区| 久久你懂得1024| 网站永久看片免费| 亚洲激情在线激情| 日本熟妇毛茸茸丰满| 欧美日韩亚洲系列| 最近中文字幕免费观看| 88在线观看91蜜桃国自产| 亚洲第一页视频| 亚洲精品久久久久| 91伦理视频在线观看| 欧美成人在线免费视频| 水蜜桃在线视频| 国产欧美日韩高清| 日韩中文在线| 麻豆蜜桃91| 国产精品伦理久久久久久| 国产一级做a爰片久久毛片男| 亚洲国产高清一区二区三区| 黄色片视频在线播放| 久草在线在线精品观看| 伊人久久一区二区三区| 国产欧美精品在线观看| 国产十六处破外女视频| 欧美性猛交xxxx黑人| 国产精品久久久久久久成人午夜| 亚洲成人激情视频| av在线播放免费| 欧美日韩成人黄色| 成人性生活av| 亚洲自拍偷拍视频| 婷婷五月色综合香五月| 亚洲日本欧美在线| 国产精品外国| 欧美性猛交xxxx乱大交91| 99精品一区二区三区| 激情无码人妻又粗又大| 午夜欧美大尺度福利影院在线看| 国产精品sm调教免费专区| 亚洲第一页在线| 麻豆视频在线播放| 奇门遁甲1982国语版免费观看高清 | 亚洲成a人v欧美综合天堂| 国产精品成人久久久| 欧美精品一区二区三区在线| 3d成人动漫在线| 欧日韩在线观看| heyzo欧美激情| 男女h黄动漫啪啪无遮挡软件| 巨乳诱惑日韩免费av| 色哟哟网站在线观看| 国产精品久久久久桃色tv| 国产情侣在线视频| 日韩午夜精品电影| 欧美96在线| 国产精品视频xxx| 亚洲综合福利| 亚洲 高清 成人 动漫| 国产激情91久久精品导航| 娇小11一12╳yⅹ╳毛片| 色综合久久精品| 欧美一区,二区| 欧美精品18videosex性欧美| 国产精品777777在线播放| 亚洲mv在线看| 人妖欧美一区二区| 中文字幕免费高清| 日韩欧美国产一区二区| 香蕉av在线播放| 97视频在线看| 欧美大奶一区二区| 青青草精品视频在线| 国产suv精品一区二区三区| 久久人妻无码aⅴ毛片a片app| 欧美人妖巨大在线| 91精彩在线视频| 国产精品主播视频| 日韩免费一区| www.久久av.com| 日韩美女啊v在线免费观看| 亚洲一区二区激情| 日韩视频在线观看免费| 国产乱子精品一区二区在线观看| 天天综合色天天综合色hd| 老司机免费视频久久| 无码一区二区三区在线| 色婷婷精品大在线视频| 成人h小游戏| 成人国产在线激情| 久久久五月天| 中文字幕久久久久久久| 一二三区精品福利视频| 成人毛片视频免费看| 久久久久久久久国产| 蜜臀av一区| 日日碰狠狠躁久久躁婷婷| 国产欧美视频一区二区| 亚洲视频在线免费播放| 久久视频在线看| 成人爽a毛片免费啪啪红桃视频| 僵尸世界大战2 在线播放| 99re视频精品| 亚洲 小说区 图片区| 久久久999精品| 盗摄牛牛av影视一区二区| 国产欧美在线一区| 国产欧美日韩亚州综合| 国产精品欧美亚洲| 久久久久这里只有精品| 亚洲欧美校园春色| 久久国产精品国产精品| 亚洲男同性视频| 国产又爽又黄网站亚洲视频123| 国产精品96久久久久久| 综合激情视频| 中文字幕5566| 欧美日本视频在线| 高清毛片在线观看| 午夜精品一区二区在线观看的| 国产米奇在线777精品观看| 日韩和一区二区| www.美女亚洲精品| 久久综合社区| 久久久久久蜜桃一区二区| 亚洲综合色丁香婷婷六月图片| 免费一级在线观看| 亚洲一区二区三区乱码aⅴ| 99精品国产99久久久久久福利| 夜夜春很很躁夜夜躁| 精品日韩欧美一区二区| 免费高清视频在线一区| 日本免费成人网| 亚洲国产精品v| 五月婷婷综合久久| 成人黄色在线播放| 亚洲欧美日本国产专区一区| www.xxxx日本|