你的浏览器禁用了JavaScript, 请开启后刷新浏览器获得更好的体验!
输入关键字进行搜索
搜索:
没有找到相关结果
cuixueying
赞同来自:
guowei422
155*****583
HennoLuo
hui
要回复问题请先登录
6 个回复
cuixueying
赞同来自:
下面我们采取分离模式对IDE自动生成的TestPage.ui界面进行分离以及在项目中中进行加载和显示
分离模式的主要作用是:
将UI界面上所有组件的属性、界面布局等逻辑与界面内容分离开,如下所示
内嵌模式下发布的UI类(默认模式)
分离模式下发布的UI类(很明显uiView数据已经没有了,因为它被单独分离成一个json文件了)
单独分离出来的文件
下面我们需要做的就是将分离出来的文件应用在我们的项目中,让项目正常加载
步骤一:打开IDE,按下F9快捷键,修改内嵌模式为加载模式
步骤二:准备好需要分离的界面(AAA.ui作为参考,TestPage.ui我们后续针对它进行操作)
步骤三:F12,发布(将TestPage.json与TestPageUI.as类进行分离,TestPage.json即为uiView包含的数据)
步骤四:预加载TestPage.json文件
步骤五:打开TestPageUI.as类,在createChildren函数下loadUI方法之上根据TestPage.json视图数据创建视图。
步骤六:Publish_h5发布项目,运行效果如下
guowei422
赞同来自:
155*****583
赞同来自:
155*****583
赞同来自:
this.createView(Loader.getRes("../test/TestPage.json"))只能放在对应的 ui 类里面加吗,这样每次导出不就覆盖了,很不方便啊
HennoLuo
赞同来自:
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
赞同来自: