flex中的括号

初学flex时,被里面四处乱飞的括号弄得有点头晕,尤其是一些不同于C,Java中用法的地方。碰到

1var ac:ArrayCollection = newArrayCollection([{name:"foo",no:0},{name:"bar",no:1}]);

这种兄弟仨一起出场的时候更是无措。

仔细翻了翻文档,总结一下,顺便测试下Easy Google Syntax Highlighter插件:

  • 小括号( ):nothing new,就两个作用:改变表达式运算顺序,小学生都会的东西;传递函数参数,传统用法
  • 大括号{ }:as3 中,两个作用:代码块,还是传统;实例化Object类的对象(实例),如
    1var obj:Object = {id:0,label:"object",date:"2010.6.22"};

    MXML中,用于嵌入内联的as代码或数据绑定(其实数据绑定也可以看作as代码),如

    1<!-- code block -->
    2<mx:Button label="click to say hello"click="{mx.controls.Alert.show('hello world')}" />
    3 
    4<!-- data binding -->
    5<mx:TextInput id="input" x="10" y="10" width="100" />
    6<mx:Text text="{input.text}" x="200" y="10" />
  • 中括号[ ]:as3中,两个作用:初始化数组,这点与C和Java用{ }不一样,很多误读就是这么产生的,如
    1var arr:Array = ["foo","bar","foobar"];

    插入元数据标签(metadata tag)如Bindable,Embed,Effect等,最常见的就是用于绑定的Bindable,如

    1[Bindable]
    2private var arr:Array;

    又如以下代码在MyComponent组件上定义myClickEvent事件

    1[Event(name="myClickEvent", type="flash.events.Event")]
    2public class MyComponent extends UIComponent{
    3//...
    4}

    在MXML中部分元数据标签可使用<mx:Metadata>标签插入,(绑定用<mx:Binding>)作用与脚本相同,如以下代码定义textSelectedColor的样式

    1<mx:Metadata>
    2[Style(name="textSelectedColor",type="Number",format="Color")]
    3</mx:Metadata>

    关于<![CDATA[ ]]>,这里的中括号与as3无关,是XML的标准语法,XML解析器会自动忽略CDATA里的内容,MXML同样遵守这一规则

  • 尖括号< >:姑且也算吧,没什么好说的,定义和关闭标签,标记语言(markup language)的身份标志

回头看第一个例子就很简单了,最外层的( )为ArrayCollection的构造函数传递参数,ArrayCollection构造函数的参数为Array数组,这就是[ ]的作用,而该参数数组则包含由{ }实例化的两个对象。

 

http://www.muyan.me/2010/06/29/brackets-in-flex/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值