Skip to content
yungzhu edited this page Mar 15, 2013 · 3 revisions
<title>Morn常见问题解答及技巧</title> <style type="text/css"> body{width:800px; line-height:150%;} h4{margin:0 2px 0 0} p{margin-top:2px;} </style>

Morn常见问题解答及技巧

怎么使用Example示例

打开编辑器,快捷键Ctrl+O打开项目,选择Example文件夹下的MornExample.Morn项目文件即可打开

怎么看到资源,组件在哪里

Morn里面,资源即组件
打开编辑器,在资源面板上点击“添加资源”,弹出资源目录,把资源放到此目录即可
特别提醒:
1.位图要以文件夹的方式存放,编辑器会以文件夹为单位生成对应的swf
2.Morn编辑器会根据资源的前缀自动识别为对应组件,前缀命名规则参考Builder/MornUIConfig.xml文件设置
比如前缀为button或btn的图片会被识别为Button组件

怎么刷新资源

资源放到目录后,编辑器内使用快捷键F5刷新资源视图

怎么发布资源和UI代码

在编辑器内使用F12快捷键发布资源和代码

为什么运行时看不到资源

如果编译项目后只看到文字看不到资源,是因为资源没有加载,请先加载资源后再实例化页面

怎么直接打开.morn项目文件

只需执行Builder下的Project_support.bat添加.Morn和编辑器的注册,就能直接双击.morn项目文件打开项目了

怎么转换为Box,Container,Tab,RadioGroup,List等容器

选中组件,快捷键Ctrl+B转换为容器,容器的类型可以通过F9配置

怎么去除容器

选中容器,通过快捷键Ctrl+U打散容器

怎么自定义Tab,Radiogroup,List

在页面内摆放几个按钮,每个按钮的位置颜色等属性可以随意设置,然后把按钮的name属性分别命名为item0,tiem1,item2...,选中这些按钮,Ctrl+B转换为Tab,这样就完成了自定义的Tab,RadioGroup,List类同

怎么设置9宫格

组件有gridSize属性(格式:左边距,上边距,右边距,下边距),例如可以设置为4,5,4,5

Box,Container,Panel的区别

Container继承自Box,Container是一个相对定位的容器,增加了定位属性,比如left,right,top,bottom,还增加了centerX,centerY剧中对齐等属性
Panel继承自Box,实现了遮罩效果和滚动条

View和Dialog的区别

Dialog继承自View,Dialog是对话框,增加了show,close等弹出关闭窗口的方法

怎么自定义的View和Dialog类

Morn Builder支持自定义页面的View和Dialog类,通过F9打开项目设置面板进行相关设置

怎么设置Dialog对话框可拖动

1)窗口默认是不能拖动的
2)在编辑器内拖动一个可视对象,命名为drag,即可实现拖动块的设置(实际运行中拖动块不可见)
3)或者通过代码视图直接设置拖拽区域(dragArea)属性即可使窗体拖动

什么是赋值,怎么赋值

赋值是对组件属性修改的简化操作,类似flex里面的数据绑定。赋值是通过dataSource属性设置的
例如页面内有一个name属性为“labe1”的文本,和一个name属性为"btn2"的按钮

简单赋值:this.dataSource={{"labe1":"设置文本的text属性"},{"btn2":"按钮名称"}};
通过上述操作,就改变了label的text属性和button的label属性

复杂赋值:this.dataSource={{"labe1":{text:"设置text",size:12}},{"btn2":{label:"按钮名称",alpha:0.5}}};

list怎么用

例子:添加一个label并选中,Ctrl+B转换为Box,设置box的name属性为render,再把box转换为List,设置List的行数,列数和间隔属性即可(分别为repeatX,repeatY,spaceX,spaceY)。还可以自定义list,参考怎么自定义Tab,Radiogroup,List

怎么对list赋值

代码中通过dataSource进行赋值,比如list.dataSource=[{label:"1"},{label:"2"},{label:"2"}]
或者list.array=[{label:"1"},{label:"2"},{label:"2"}]

怎么自定义list的渲染方式,怎么使用renderHandler

list可以通过renderHandler函数自定义list渲染,如下图,详细可参看Example示例

怎么在list内添加滚动条

双击list,进入list内部,拖动一个滚动条到list内,修改name属性为scrollBar,即可自动识别,详细可参看Example示例

怎么在list内添加鼠标经过效果

双击进入list的item内部,添加一个两帧的clip(over状态,select状态),命名为selectBox,list即可自动识别,详细可参看Example示例

怎么自定义组件,怎么扩展组件

自定义组件有三个步骤:
1.书写组件类,实现IComponent接口(或者直接继承Component类),如果是容器,实现IBox接口(或者直接继承Box类)
2.修改View类添加对应的映射
3.修改编辑器Builder/MornUIConfig.xml添加对应的配置

怎么自定义控件

Morn支持自定义控件(又称页面嵌套),实现页面的复用,只需拖动页面到另外一个页面内部,即可实现控件复用,还可通过修改此控件的runtime属性来设置控件的逻辑类

怎么批量复制组件

通过快捷键Ctrl+R可实现组件的批量复制

怎么方便的调整组件的顺序及控制组件在编辑器的显示和隐藏

可以通过层对组件层次和是否显示进行控制,使用快捷键可以调整组件在同层的顺序和及切换到其他层,快捷键参考图层菜单

怎么自定义资源,代码的发布目录

快捷键F9打开项目设置,里面可以修改很多个性化设置

什么是内嵌模式,什么是加载模式

内嵌模式和加载模式都是针对UIXML而言的,内嵌模式是将UI视图结构内嵌在UI类里面,加载模式是把UI视图结构压缩打包为ui.swf,使用时再加载解析
内嵌模式简单清晰,加载模式实现了UI和主程序分离,所以可以让美术直接修改UI导出,而无需编译主程序即可看到效果

怎么预览动画(Clip和FrameClip)

Clip和FrameClip可以在编辑器内进行预览,选择组件,按回车键控制播放

都有哪些快捷键

常用快捷键:刷新资源(F5),发布代码(F12),转换为容器(Ctrl+B),打散容器(Ctrl+U),拖动视图(鼠标右键)等等,更多快捷键可以从菜单提示内找到

怎么扩展Morn UI编辑器

只要继承至编辑器扩展基类PluginBase即可,详细参考PluginDemo扩展实例源码

获得更多帮助

如需更多帮助,可以加入Morn交流群51451081,如发现bug,请在https://github.com/yungzhu/mornhttp://code.google.com/p/morn进行反馈