[网页游戏开发]Morn组件赋值
在讲解List之前,我们先介绍一下Morn组件赋值功能
默认属性赋值
界面逻辑开发过程中,经常会涉及到动态更改UI属性,比如:
界面有一个按钮,一个多选框和一个文本,分别命名为myButton,myCheckBox,myLabel

假如你需要更改按钮的label属性为”按钮”,同时让CheckBox变成选中状态,并且还要修改Label组件的内容,传统的做法是先取出来,然后再更改其属性,代码如下:
var myButton:Button = getChildByName("myButton") as Button;
myButton.label = "按钮";
var myCheckBox:CheckBox = getChildByName("myCheckBox") as CheckBox;
myCheckBox.selected = true;
var myLabel:Label = getChildByName("myLabel") as Label;
myLabel.text = "我是label";
在Morn中,只需一行代码即可实现上述功能
this.dataSource = {myButton:"按钮",myCheckBox:true,myLabel:"我是label"};
格式:容器.dataSource = {组件名:默认属性值,组件名:默认属性名。。。}
是不是非常简单呢。
赋值,简化了逻辑操作,把原来对UI组件获取,设置等操作进行封装,将开发者的焦点集中到对数据操作上,大大简化了UI开发的复杂性和工作量,使用起来非常方便,能大大提高工作效率。
所以,Morn中大部分UI逻辑都变成了赋值操作,就是这么简单。
上述赋值方式为默认属性赋值,只更改组件的默认属性,一个组件只有一个默认属性,比如Button的默认属性是label,CheckBox的默认属性是selected
默认属性对应如下:
Button,LinkButton,RadioButton默认属性均为label
Label,TextInput,TextArea默认属性均为text
ComboBox,Tab,RadioGroup,ViewStack默认属性均为selectedIndex
Clip,FrameClip默认属性均为frame
ProgressBar,Scroll,Slider默认属性均为value
CheckBox为selected,Image为url
自定义赋值
上述默认属性赋值简单好用,但是很多情况下,不仅仅更改组件的默认属性,还会更改其他属性,那么可以通过自定义赋值实现,还是上面例子,更改赋值如下:
this.dataSource = {myButton:{label:"按钮",labelBold:14},myCheckBox:{selected:true,alpha:0.5}};
上述操作,同时更改了myButton的label和labelBold属性,也同时更改了myCheckBox的selected和alpha属性
格式:容器.dataSource = {组件名:{属性:属性值,属性:属性值},组件名:{属性:属性值,属性:属性值}。。。}
对容器赋值
容器的赋值和非容器赋值不太一样:
非容器赋值,key对应的组件的属性名。容器赋值,key对应的是子对象的名称
比如页面中有个Box,var定义为box1,Box内部有个Button,name为button1,赋值表达式如下:
box1.dataSource = {button1:{label:”按钮”,alpha:0.5}}
格式:容器.dataSource = {子对象名:{属性:属性值,属性:属性值}。。。}
List赋值
因为list是一个列表,list赋值和上面不太一样,list赋值对象为一个Array,而不是object
例如下面list

list.dataSource = [{label1:"我是label1",checkBox1:true},{label1:"我是label2",checkBox1:true}...];
格式:list.dataSource = [item0赋值,item1赋值,item2赋值。。。]
同时也可以设置list的array属性进行赋值,效果同dataSource
是不是非常简单但强大呢,下节继续为大家讲解《List的详细使用用法》
[网页游戏开发]Morn组件赋值的更多相关文章
- [网页游戏开发]Morn简介及使用教程
网页游戏开发利器,morn系列教程之Morn简介及使用教程 网页游戏开发的一大部分工作是在和UI制作上,一个好的工具及框架能使开发事半功倍,Adobe自带flash IDE和Flex各有不足. Mor ...
- 网页游戏开发秘笈 PDF扫描版
精选10种常见的游戏类型,透过典型实例,深入剖析游戏引擎及工具的选用技巧,详细讲解每款游戏的制作过程,为快速掌握网页游戏开发提供系统而实用的指南. 网页游戏开发秘笈 目录: 译者序 前 言 导 言 ...
- [网页游戏开发]进一步了解Morn UI及工作流
Morn UI工作流 Morn Builder不仅仅是对Flash IDE的改进,传统的开发协作是以fla为基础,由于fla是二进制文件,在以svn等版本控制软件协作下,合并过程中会出现各种各样的问题 ...
- Phaser3 场景Scene之间的传值 -- HTML JAVASCRIPT 网页游戏开发
PHASERJS3 一.首先当然得有至少有二个场景sceneA.js,sceneB.js 二.从场景A传值到场景B二种方法 1)通过事件this.events.emit('event key',{ ...
- Phaser3 场景Scene之间的传值 -- HTML网页游戏开发
一.首先当然得有至少有二个场景sceneA.js,sceneB.js 二.从场景A传值到场景B二种方法 1)通过事件this.events.emit('event key',{objKey:objVa ...
- Phaserjs3 对象池随机产生炸弹并销毁 -- Html网页游戏开发
scene.js /// <reference path="../../libs/phaser/phaser.min.js"/> 'use strict'; var B ...
- [网页游戏开发]容器的使用及自定义Tab,RadioGroup,List,ViewStack
Morn里面,容器和其他普通组件不同,无需皮肤,所以也不能从组件树种拖动创建(Tab,RadioGroup例外),只能转换而来 Morn的容器组件主要有Box,Container,Panel,Tab, ...
- Spring 开发之组件赋值
1. @Value & @PropertySource 1.1 使用方式 @PropertySource:读取外部配置文件中的 k/v 保存到运行的环境变量中;加载完外部的配置文件以后使用 $ ...
- Unity3D游戏开发之开发游戏带来的问题
昨日曾就某投资人把移动团队失败原因之中的一个归于选择Unity引擎进行了一番评论,工具本身无罪,但怎样理解工具.正确使用Unity引擎确实须要讨论,在选择Unity之前你也许须要了解下这个引擎实际开发 ...
随机推荐
- iOS学习笔记18-CoreData
一.CoreData介绍 CoreData是iOS5之后新出来的的一个框架, 是对SQLite进行一层封装升级后的一种数据持久化方式.它提供了对象<-->关系映射的功能,即能够将OC对象转 ...
- 背单词(bzoj 4567)
Description Lweb 面对如山的英语单词,陷入了深深的沉思,“我怎么样才能快点学完,然后去玩三国杀呢?”.这时候睿智 的凤老师从远处飘来,他送给了 Lweb 一本计划册和一大缸泡椒,他的计 ...
- 开店 BZOJ 4012
开店 [问题描述] 风见幽香有一个好朋友叫八云紫,她们经常一起看星星看月亮从诗词歌赋谈到人生哲学.最近她们灵机一动,打算在幻想乡开一家小店来做生意赚点钱.这样的想法当然非常好啦,但是她们也发现她们面临 ...
- 用GDB远程调试android native程序
上次写了几个native程序,想着如何调试,经过一阵子搜索和测试,终于完成了.有几个关键点: 1 gdb和gdbserver 因为这两个需要配套,建议使用同一个ndk下面的gdb和gdbserver ...
- 51NOD 1424 零树
Discription 有一棵以1为根的树,他有n个结点,用1到n编号.第i号点有一个值vi. 现在可以对树进行如下操作: 步骤1:在树中选一个连通块,这个连通块必须包含1这个结点. 步骤2:然后对这 ...
- 高性能JS-DOM
用脚本进行DOM操作的代价是很昂贵的,它是富web应用中最常见的性能瓶颈.主要有以下三种问题: 访问和修改DOM元素 修改DOM元素的样式导致repaint和reflow 通过DOM事件处理与用户进行 ...
- 【flyway】开源的数据库版本管理工具【migration】
开源的数据库版本管理工具[migration] 记录
- VMware Workstation 虚拟机设置连接U盘
首先确保主机有开启"VMware USB Arbitration Service"服务,而且在执行中. 如图:(我的系统是win8.1 ) 在VMware Workstation虚 ...
- BUPT复试专题—排序(2009)
题目描述 查找序列a 中小于 b 的第 i 个数的数的个数 输入 输入有多组,每组四行第一行:序列a个数N第二行:(序列a的)N个数,升序排列第三行:序列b个数M 第四行:(序列b的)M个数,升序排列 ...
- postgresql 导出建表语句的方法-类似describe table
https://www.youtube.com/watch?v=PMfcsYzj-9M 这个视频不错, The Definitive Guide to Object-Oriented JavaScr ...