[]LayaAir下分离模式的使用

已邀请:

cuixueying

赞同来自:

本篇文章将告诉大家IDE下分离模式的使用方法,项目使用的是IDE自动创建的UI项目,AS3语言版本
下面我们采取分离模式对IDE自动生成的TestPage.ui界面进行分离以及在项目中中进行加载和显示
分离模式的主要作用是:
将UI界面上所有组件的属性、界面布局等逻辑与界面内容分离开,如下所示
内嵌模式下发布的UI类(默认模式)
 
131313.png


分离模式下发布的UI类(很明显uiView数据已经没有了,因为它被单独分离成一个json文件了)

999.png


单独分离出来的文件

333.png


下面我们需要做的就是将分离出来的文件应用在我们的项目中,让项目正常加载
步骤一:打开IDE,按下F9快捷键,修改内嵌模式为加载模式

111.png

步骤二:准备好需要分离的界面(AAA.ui作为参考,TestPage.ui我们后续针对它进行操作)

222.png

步骤三:F12,发布(将TestPage.json与TestPageUI.as类进行分离,TestPage.json即为uiView包含的数据)

333.png

步骤四:预加载TestPage.json文件

444.png

步骤五:打开TestPageUI.as类,在createChildren函数下loadUI方法之上根据TestPage.json视图数据创建视图。

555.png

步骤六:Publish_h5发布项目,运行效果如下

666.png


 
 
 

  

guowei422

赞同来自:

请问下,js项目要怎么用这个分离模式呢?

155*****583

赞同来自:

分离模式 导出的 json 只能再 bin 目录下吗  不可以指定到 h5文件夹下吗,打包 layadcc和其他环境配置 的时候就不能只再 h5下进行了,如果手动导进去起步很麻烦

155*****583

赞同来自:

还有分离模式下,
this.createView(Loader.getRes("../test/TestPage.json"))只能放在对应的 ui 类里面加吗,这样每次导出不就覆盖了,很不方便啊

HennoLuo

赞同来自:

@xcling的问题:
1. 在设计模式下,F9打开项目设置,里面有加载UI发布目录,可以修改json的导出路径。例如将bin/ui.json改为,bin/json/ui.json,那么分离模式的json就会导出到bin/json下
 
2.我参考了加载模式的例子,建议你试试在new ViewTest()前面加上
View.uiMap["test/TestPage"]= Laya.loader.getRes("../test/TestPage.json");
另外也可以通过修改IDE的导出内容,把代码加到自动导出的内容里面。导出相关逻辑在编辑器目录的layabuilder.max.js下,自行搜索一下吧
 
@AIQR2013的问题:
区别是分离模式下json文件可以单独更新,而不用更新layaUI.max.all.ts文件。例如修改了UI布局。

hui

赞同来自:

我改了layabuilder.max.js   的 CodeManager.objToUI 函数,但是好像这个文件的所有代码都不执行, 我把这个脚本删了也能正常导出

要回复问题请先

商务合作
商务合作