1.在AS3程序初始化的时候,先把lua文件加载进来,使用文本格式进行加载
private
const
TEST_LUA_FILE_NAME:String =
"script/Test2.lua"
;
/**
* 文档类初始化的时候,首先是去加载 lua 文件
* 使用URLLoader加载文本文件
*/
private
function
initial():
void
{
loadLuaScript(TEST_LUA_FILE_NAME);
}
/**
* 加载
*/
private
var
luaFiles:Dictionary =
new
Dictionary();
private
function
loadLuaScript(url:String):
void
{
var
loader:URLLoader =
new
URLLoader();
var
urlRequest:URLRequest =
new
URLRequest(url);
loader.dataFormat = URLLoaderDataFormat.TEXT;
loader.load(urlRequest);
loader.addEventListener(Event.COMPLETE, onCompleteHandler);
//因为有可能会加载多个文件,所以加载完成方法放在这里面
function
onCompleteHandler():
void
{
luaFiles[url] = changeEncode(loader.data);
//changeEncode(loader.data);
}
}
2.用字典保存住加载到的lua文件内容
3.在AS代码中创建调用lua的对象,需要加入lua-alchemy.swc包
//在lua-alchemy.swc中
private
var
lua:LuaAlchemy =
new
LuaAlchemy();
4.调用lua方法
private
function
callLua():
void
{
//设置在lua中回调的对象
lua.setGlobal(
"AS"
,
this
);
//把文件当代码运行
lua.doString(luaFiles[TEST_LUA_FILE_NAME]);
//执行方法
lua.doString(
"main();"
);
}
5.在lua的方法中回调AS的方法:
function main()
as3.call(AS, "printWord")
end
6.AS测试方法:
public
function
printWord():
void
{
trace
(
"你好啊...lua。。。。"
);
}