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函数,

  • 相关阅读:
    k8s之一键部署docker及k8s脚本(适用于centos7,cnetos8及ubuntu)
    k8s之使用Kubeadm部署k8s集群
    lnmp架构之一键搭建wordpress博客网站脚本(适用于centos7和centos8)
    一键编译安装nginx-1.18.0脚本(适用centos7,ubuntu1804,debian10)
    xshell登陆服务器步骤
    xshell无法连接到linux主机原因分析
    数据库文件备份与还原
    Linux服务器运维基本命令
    服务器运维操作命令
    firewalld的基本使用
  • 原文地址:https://www.cnblogs.com/hackerl/p/13417849.html
Copyright © 2011-2022 走看看