AS3與lua之間的交互

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") this

end lua


6.AS測試方法:
              public   function  printWord():   void
           {
                   trace (   "你好啊...lua。。。。"   );

           }
url

相關文章
相關標籤/搜索