Notes of Flash Builder 4 Bible (3)

第一部分

——————————

新的特性

FXG(Flash XML Graphics)是奥多比公司开发的一种语言,这种语言可以在Flex应用中展示图形元素。它的功能很接近Adobe Flash Player 10的表现模型。FXG和SVG(可扩展的向量图形)有很多相同的地方,SVG是一种展示图形的XML语言,已经出现好几年了。事实上,Adobe开发小组一开始考虑利用SVG,但是最后决定要创造一种新的语言,因为出现的SVG不能再Flash Player中描绘图形。Adobe系统公司出品的图形设计、影像编辑与网络开发的软件产品套装可以将图形导出为FXG标记,包括Photoshop、Illustrator和Fireworks。

当你编译Flex应用程序的时候,你的MXML代码在后台被重写为ActionScript 3。如果你纯粹的用ActionScript 3写应用代码会很麻烦,但是MXML使这项工作变得既容易又快,MXML可以描述成一个“便利的语言”。

注意

开始学习Flash CS3 Professional时,ActionScript 3在Flash程序编辑环境也是有用的,这个环境下你可以写逻辑代码,创建类的定义和其他程序设计任务。不像Flex只能用ActionScript 3,你可以用老版本的语言来创建Flash文件,例如:ActionScript 2。

图表1.1的图解描述了Flex SDK的命令行编译、Flex Builder、MXML、ActionScript程序设计语言、Flash Player和AIR之间的关系。

MXML vs ActionScript 3

你可以在任何情况下交换使用MXML和ActionScript。MXML通常用于声明应用中的可视构图和许多的对象,但是你的选择可以经常的变化,就像一个开发者来决定什么时候使用每一种语言。

在这些例子中,我描述了一个ActionScript类的一个实例Label,然后设置了一些属性和样式。Label类是Flex 4类库中的一部分,包含在Flex SDK和Flash Builder 4中。它的目的是在Flex应用中显示简单的文本。

新的特性

Label控件在这些例子中是一个新的聚集组件的一部分,这个聚集组件叫做Spark组件。(在Flex 2和3中控制器和容器被命名为MX组件。)Spark组件和其他两个控制元件RichText和RichEditableText是代替MXLabel和Text控制元件而设计的。

在MXML中声明对象

Label控制元件在MXML中用标签<s:Label/>表示。为了用MXML来创建一个Label控件的实例和设置它的text属性值为Hello,声明标签并设置属性为可扩充的标记性语言(XML)属性。下面的例子也设置了字体类型和字体大小,这样来影响控件的显示。

<s:Label id="myMXMLText" text="Hello from MXML" fontSize="18" fontWeight="bold"/>

Flex SDK和Flash Builder在MXML和ActionScript中都编译代码,生成可执行的应用程序,这些应用程序是以运行在Web上的Flash Player和运行在桌面的AIR为宿主的。

对照

XML命名空间的前缀s:是引用于新的Spark命名空间,这个是在所有的Flex 4应用头部声明的。

xmlns:s="library://ns.adobe.com/flex/spark"

我在第四部分描述这个内容和其他的Flex 4命名空间。

在ActionScript 3中声明对象

你可以用ActionScript 3在应用的构图上初始化或者增加Label等控件。当使用这个编码模型的时候,你首先声明对象为变量。如果你想在其他地方引用这个对象,你必须在函数之外声明。然后,你就可以利用类的构造方法来初始化对象,以及设置它的属性和类型,然后把这个对象加到应用的目录组,这样就可以在其他地方使用了。

你可以在创建对象后的任何时间来设置控件的属性和类型:

import mx.events.FlexEvent;

import spark.components.Label;

protected var myActionScriptText:Label;

protected function creationCompleteHandler(event:FlexEvent):void

{

myActionScriptText=new Laabel();

myActionScriptText.text="Hello from ActionScript";

myActionScriptText.setStyle("fontSize",18);

myActionScriptText.setStyle("fontWeight","bold");

this.contentGroup.addElement(myActionScriptText);

}

上面的ActionScript代码完成了在第一个例子中MXML代码的相同的步骤。注意ActionScript的代码要多很多行,里面包含一个自定义函数代替MXML的声明。这个不同点,为了完成某个特殊的任务而需要大量的代码,也是MXML出现的原因。MXML可以有效的减少应用中的代码量,而不在特征和性能之间折中。

未完,待续……

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值