• 一个界面的前世今生----白鹭引擎的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函数,

  • 相关阅读:
    apache solr简单搭建
    Flash学习初总结
    UWP多设备加载不同xaml布局文件
    鼠标右键多余选项删除
    用命令查看win10/win8.1等详细激活信息方法:
    win10 登陆选项 无法打开
    UWP应用开发:添加复制按钮,添加引用
    notepad++详细介绍!
    Python安装出现2503 2502 问题解决!
    Genymotion插件安装教程
  • 原文地址:https://www.cnblogs.com/hackerl/p/13417849.html
Copyright © 2020-2023  润新知