在讲解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组件赋值的更多相关文章

  1. [网页游戏开发]Morn简介及使用教程

    网页游戏开发利器,morn系列教程之Morn简介及使用教程 网页游戏开发的一大部分工作是在和UI制作上,一个好的工具及框架能使开发事半功倍,Adobe自带flash IDE和Flex各有不足. Mor ...

  2. 网页游戏开发秘笈 PDF扫描版

    精选10种常见的游戏类型,透过典型实例,深入剖析游戏引擎及工具的选用技巧,详细讲解每款游戏的制作过程,为快速掌握网页游戏开发提供系统而实用的指南. 网页游戏开发秘笈 目录: 译者序  前 言  导 言 ...

  3. [网页游戏开发]进一步了解Morn UI及工作流

    Morn UI工作流 Morn Builder不仅仅是对Flash IDE的改进,传统的开发协作是以fla为基础,由于fla是二进制文件,在以svn等版本控制软件协作下,合并过程中会出现各种各样的问题 ...

  4. Phaser3 场景Scene之间的传值 -- HTML JAVASCRIPT 网页游戏开发

      PHASERJS3 一.首先当然得有至少有二个场景sceneA.js,sceneB.js 二.从场景A传值到场景B二种方法 1)通过事件this.events.emit('event key',{ ...

  5. Phaser3 场景Scene之间的传值 -- HTML网页游戏开发

    一.首先当然得有至少有二个场景sceneA.js,sceneB.js 二.从场景A传值到场景B二种方法 1)通过事件this.events.emit('event key',{objKey:objVa ...

  6. Phaserjs3 对象池随机产生炸弹并销毁 -- Html网页游戏开发

    scene.js /// <reference path="../../libs/phaser/phaser.min.js"/> 'use strict'; var B ...

  7. [网页游戏开发]容器的使用及自定义Tab,RadioGroup,List,ViewStack

    Morn里面,容器和其他普通组件不同,无需皮肤,所以也不能从组件树种拖动创建(Tab,RadioGroup例外),只能转换而来 Morn的容器组件主要有Box,Container,Panel,Tab, ...

  8. Spring 开发之组件赋值

    1. @Value & @PropertySource 1.1 使用方式 @PropertySource:读取外部配置文件中的 k/v 保存到运行的环境变量中;加载完外部的配置文件以后使用 $ ...

  9. Unity3D游戏开发之开发游戏带来的问题

    昨日曾就某投资人把移动团队失败原因之中的一个归于选择Unity引擎进行了一番评论,工具本身无罪,但怎样理解工具.正确使用Unity引擎确实须要讨论,在选择Unity之前你也许须要了解下这个引擎实际开发 ...

随机推荐

  1. Python第三方库之openpyxl(8)

    Python第三方库之openpyxl(8) 饼图 饼图将数据绘制成一个圆片,每个片代表整体的百分比.切片是按顺时针方向绘制的,0在圆的顶部.饼图只能取一组数据.该图表的标题将默认为该系列的标题. 2 ...

  2. 暑假训练Round1——G: Hkhv的水题之二(字符串的最小表示)

    Problem 1057: Hkhv的水题之二 Time Limits:  1000 MS   Memory Limits:  65536 KB 64-bit interger IO format: ...

  3. [kubernetes] 使用 Minikube 快速搭建本地 k8s 环境 (基于 Docker 驱动模式)

    一.实验环境 操作系统:Centos 7 x86_64 Docker:1.12.6 二.部署 k8s 步骤 2.1  安装 kubectl cat <<EOF > /etc/yum. ...

  4. Linux 下测试磁盘读写 I/O 速度的方法汇总

    在分布式异构存储系统中,我们经常会需要测量获取不同节点中硬盘/磁盘的读写 I/O 速度,下面是 Linux 系统下一些常用测试方法(之后不定期更新): 1.使用 hdparm 命令这是一个是用来获取A ...

  5. Aragorn's Story(hdu3966)

    题意:给一棵树,并给定各个点权的值,然后有3种操作: I C1 C2 K: 把C1与C2的路径上的所有点权值加上K D C1 C2 K:把C1与C2的路径上的所有点权值减去K Q C:查询节点编号为C ...

  6. *AtCoder Regular Contest 094 F - Normalization

    $n \leq 200000$的abc字符串,现能进行如下变换零次或若干次:选一个$i<n$且$s_i \neq s_{i+1}$,把$s_i$和$s_{i+1}$替换成abc三个字母中除了这两 ...

  7. 对象数据源objectdatasource的使用,类的编写实现查询增删改的方法

    原文发布时间为:2008-08-01 -- 来源于本人的百度文章 [由搬家工具导入] using System;using System.Data;using System.Configuration ...

  8. oracle查询当前用户名下所有表

    select * from all_tables where owner='TEST': TEST为用户名,用户名必须是大写. 查看当前登录的用户的表: select table_name from ...

  9. hdu 5012 bfs 康托展开

    Dice Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submi ...

  10. ci框架——文章查看之上篇下篇

    1:从数据库查询出推荐的文章的信息,循环查出每篇推荐文章的id和title; foreach($data as $val){ $dataid[]=$val->aid; $datatitle[]= ...