Example #1
0
        // 加载窗口控件资源,窗口资源都是从文件加载
        public void loadWidgetRes(UIFormID ID)
        {
            UIAttrItem attrItem = m_UIAttrs.m_id2AttrDic[ID];

            if (!m_ID2WidgetLoadingItemDic.ContainsKey(ID))                       // 如果什么都没有创建,第一次加载
            {
                m_ID2WidgetLoadingItemDic[ID]      = new UILoadingItem();
                m_ID2WidgetLoadingItemDic[ID].m_ID = ID;

                loadFromFile(attrItem.m_widgetPath, onWidgetLoadEventHandle);
            }
        }
Example #2
0
        // 这个事加载界面需要的代码
        //public void loadForm<T>(UIFormID ID) where T : Form, new()
        public void loadForm(UIFormID ID)
        {
            UIAttrItem attrItem = m_UIAttrs.m_id2AttrDic[ID];
            Form       window   = getForm(ID);

            if (window != null)        // 本地已经创建了这个窗口,
            {
                if (window.IsResReady) // 如果资源也已经加载进来了
                {
                    if (null != Ctx.m_instance.m_cbUIEvent)
                    {
                        Ctx.m_instance.m_cbUIEvent.onCodeFormLoaded(window);  // 资源加载完成
                    }
                }
            }
            else if (!m_ID2CodeLoadingItemDic.ContainsKey(ID))                       // 如果什么都没有创建,第一次加载
            {
                // 创建窗口
                Form form = null;
                if (attrItem.m_bNeedLua)
                {
                    form = new Form();
                }
                else
                {
                    form = Ctx.m_instance.m_scriptDynLoad.getScriptObject(attrItem.m_scriptTypeName) as Form;
                }

                if (form != null)                   // 如果代码已经在本地
                {
                    (form as Form).id = ID;
                    if (attrItem.m_bNeedLua)
                    {
                        form.luaCSBridgeForm = new LuaCSBridgeForm(attrItem.m_luaScriptTableName, form);
                        form.luaCSBridgeForm.DoFile(attrItem.m_luaScriptPath);
                    }

                    addFormNoReady(form);           // 仅仅是创建数据,资源还没有加载完成
                    onCodeLoadedByForm(form);
                }

                // 这个地方应该抛出异常
                if (null == form)    // 本地没有代码
                {
                    m_ID2CodeLoadingItemDic[ID]      = new UILoadingItem();
                    m_ID2CodeLoadingItemDic[ID].m_ID = ID;

                    loadFromFile(attrItem.m_codePath, onCodeLoadEventHandle);
                }
            }
        }
Example #3
0
        // 加载窗口控件资源,窗口资源都是从文件加载
        public void loadWidgetRes(UIFormID ID)
        {
            UIAttrItem attrItem = m_UIAttrs.m_id2AttrDic[ID];
            if (!m_ID2WidgetLoadingItemDic.ContainsKey(ID))                       // 如果什么都没有创建,第一次加载
            {
                m_ID2WidgetLoadingItemDic[ID] = new UILoadingItem();
                m_ID2WidgetLoadingItemDic[ID].m_ID = ID;

                loadFromFile(attrItem.m_widgetPath, onWidgetLoadEventHandle);
            }
        }
Example #4
0
        // 这个事加载界面需要的代码
        //public void loadForm<T>(UIFormID ID) where T : Form, new()
        public void loadForm(UIFormID ID)
        {
            UIAttrItem attrItem = m_UIAttrs.m_id2AttrDic[ID];
            Form window = getForm(ID);

            if (window != null)     // 本地已经创建了这个窗口,
            {
                if (window.IsResReady)      // 如果资源也已经加载进来了
                {
                    if(null != Ctx.m_instance.m_cbUIEvent)
                    {
                        Ctx.m_instance.m_cbUIEvent.onCodeFormLoaded(window);  // 资源加载完成
                    }
                }
            }
            else if (!m_ID2CodeLoadingItemDic.ContainsKey(ID))                       // 如果什么都没有创建,第一次加载
            {
                // 创建窗口
                Form form = null;
                if (attrItem.m_bNeedLua)
                {
                    form = new Form();
                }
                else
                {
                    form = Ctx.m_instance.m_scriptDynLoad.getScriptObject(attrItem.m_scriptTypeName) as Form;
                }
                
                if (form != null)                   // 如果代码已经在本地
                {
                    (form as Form).id = ID;
                    if (attrItem.m_bNeedLua)
                    {
                        form.luaCSBridgeForm = new LuaCSBridgeForm(attrItem.m_luaScriptTableName, form);
                        form.luaCSBridgeForm.DoFile(attrItem.m_luaScriptPath);
                    }

                    addFormNoReady(form);           // 仅仅是创建数据,资源还没有加载完成
                    onCodeLoadedByForm(form);
                }

                // 这个地方应该抛出异常
                if(null == form)    // 本地没有代码
                {
                    m_ID2CodeLoadingItemDic[ID] = new UILoadingItem();
                    m_ID2CodeLoadingItemDic[ID].m_ID = ID;

                    loadFromFile(attrItem.m_codePath, onCodeLoadEventHandle);
                }
            }
        }