当前位置: BOLT界面引擎 > 知识库文章 > XARManager的LoadXAR和AsynLoadXAR相关事件

XARManager的LoadXAR和AsynLoadXAR相关事件

作者:李亚星

XARManager增加下面两个事件

 

Long,handled OnPreLoadXAR(xarManager, string xarName, int loadType)

Long,handled OnPostLoadXAR(xarManager,string xarName,int loadType, bool loadResult)

 

 

其中OnPreLoadXAR是在调用了LoadXARAsynLoadXAR之后,将要真正加载XAR之前触发的,这里需要特别注意LoadXAR会同步触发该事件,而AsynLoadXAR会异步的等到真正要加载xar包的时候,才会触发事件

 

各个参数的含义如下:

1、  xarManager XARManager全局对象

2、  xarName LoadXARAsynLoadXAR指定加载的xar的名称

3、  loadType 指定 xar的加载类型,是调用LoadXAR加载的,还是调用AsynLoadXAR加载的,如果取值是0,那么表示是调用LoadXAR加载的;如果是1,表示是调用AsynLoadXAR加载的

4、  loadResult 表示该xar是加载成功还是失败

 

XARManager增加了AttachListenerRemoveListener两个函数

目前这两个函数只可以在lua里面来挂接和移除,使用示例代码如下

 

local function PreLoadXAR(xarManager, name, type)

         XLMessageBox(name .. type)

end

 

local function PostLoadXAR(xarManager, name, type, result)

         if result then

                   XLMessageBox(name .. type .. " load success!")

         else

                   XLMessageBox(name .. type .. " load failed!")

         end

end

 

local XARManager = XLGetObject("Xunlei.UIEngine.XARManager")

local preLoadCookie = XARManager:AttachListener("OnPreLoadXAR", false, PreLoadXAR)

local postLoadCookie = XARManager:AttachListener("OnPostLoadXAR", false, PostLoadXAR)

 

。。。。。。

 

XARManager:RemoveListener("OnPreLoadXAR",preLoadCookie)

XARManager:RemoveListener("OnPostLoadXAR",postLoadCookie)

 

 

迅雷公司 版权所有 Copyright 2003-2010 Thunder Inc.All Rights Reserved. 意见反馈:xl7doc@xunlei.com