zoukankan      html  css  js  c++  java
  • 一个界面的前世今生----白鹭引擎的UI 部分学习笔记(学习笔记1)

    1.瞎几把弄一个skin文件+ 瞎几把写一个class  我是界面王二狗  extends UiPanelBase

    2.注册skinclass,将他们进行交配(register),并且给他们的家庭一个门牌号(panelID)

    3.他们家上台表演了:showPanel->set currentPanel->得到这个paneldata,如果这个panel是属于一个group的字界面,paneldatagroupid设置为groupdataid,还要给获取到这个groupgroupdata,将groupdataopenid设置为panelid,将两者绑定起来。

    4.如果是panel或者已经打开了group的界面,则创建这个界面的class 的对象,这个是必须要创建的。如果是group子界面,并且这个group不存在,则需要创建这个groupclass的对象,然后把group对象的openid设置为这个子界面的id

    5.创建了界面的class的对象,然后就开始去加载这个对象,即调用这个对象的load函数,这个load函数其实就是父类Panel(faceui->UiPanelBase->Panel->

    ShowObject->ShowLogic)load函数,最终是调用到ShowLogicload方法。

    6.如果有指定资源组,则加载资源组,否则直接加载资源。

    7.资源组的加载:先根据名字创建一个资源组的对象,然后调用RES.loadGroup(groupName....)去加载资源组。加载完了再去加载skin,调用的接口是EXML.load

    8.初始化皮肤initSkin:根据皮肤路径创建一个partMap组件,用来记录皮肤的信息。同时将解析出来的皮肤的clazz赋值给界面的class对象的skinName,记录下来,这里的skinName是引擎的变量,它不仅仅是记录下来,而且还会解析这个皮肤的名字,然后创建对应clazz类名字的对象以及递归其子对象,这个对象就包含了皮肤的所有信息,然后设置皮肤的每个part(set  SkinName->$parseSkinName->new SkinName()->

    for setSkinPart-> this.partAdded->回到showObject里面的partAdded->ShowLogic.partAdded->PartInfoMap.addPart),然后会将皮肤的信息存在partMap里面。然后调用界面的onInit函数,

  • 相关阅读:
    每一个合格的家庭主妇都是生产厂长的有力竞争者
    单点登录在ASP.NET上的简单实现
    Asp.net(C#)给图片加上水印效果
    Asp.net Ajax框架教程
    记入cookie一个ip一天只弹一次的弹窗代码JavaScript实例教程
    【转】ASP.net2。0中解决无法获取 GridView 隐藏列值问题
    javascript 动态添加表格行
    IndexOf方法,LastIndexOf方法,substring方法
    SQL 批量插入数据
    js 前台找控件(table里找控件)
  • 原文地址:https://www.cnblogs.com/hackerl/p/13417849.html
Copyright © 2011-2022 走看看