天天看点

[Flex 2] 04 容器和组件

/// 前面的几乎都是在抄书,是要改一下了

Tips:

1、Flex Builder项目或ActionScript项目会作为一个容器,容纳所有资产。资产即项目运行所需的各种各样的文件(MXML、AS、图片和XML等)。Flex Builder会为我们跟踪这些不同的资产,故Flex Builder要求我们只能在项目内创建或导入这些资产。

2、通常只有一个MXML文件,它充当着通往其他所有文件的“关口(gateway)“。因为它是用户定位到网站时出现的文件,故类似标准Web设计的index.htm文件。

3、建议不要修改主文件输出目录bin,否则大量测试能力将会丧失;但如果需要在一个不同目录结构的服务器上测试,就需要修改此目的地。

################

# 主应用程序文件

################

      应用程序从起始Application标签开始,然后以结尾Application标签退出;其他所有事情必须直接或间接发生在两标签之间。

      每个Flex项目都应只有一个含有Application标签的文件,即主应用程序文件(main application file)。

      如把项目比作交响乐团,则Application标签就是指挥者。没有他发号施令,一切都不会发生。

      (Application标签类似于Java、C++、C#.NET中的主方法(main method),在Flash中类似于主时间轴。)

    Flex目的在于呈现数据(呈现服务器),其应用程序通过在容器内的容器里创建容器来构建。可把标签看成最外面的容器或说主容器,所有其他容器都放在此容器内。(此概念类似于Java构建其用户界面的方式)

      所有Flex错误可归结为两类:编译错误(compiler error)、运行时错误(runtime error)。在大多数程序中,编译指把编写的代码转变成计算机处理器可轻松读取的二进制文件。不过在Flex中(如Flash中),它把代码转变为SWF(small web format,小Web格式)文件。

      常用布局容器(共16个):

    * HBox: 从左到右水平摆放子控件;

    * VBox: 从上到下居中摆放子控件;

    * Canvas: 使用绝对布局,故必须指定x、y属性。

    * Panel: 可作HBox、VBox或Canvas,且具有一可添加文本的标题栏区域。

    * Tile: 以垂直列或水平行排列子控件,且每个单元格大小相同。且同Panel一样,亦有一标题栏区域。

    * ApplicationControlBar: 可VBox,可HBox。可把要影响整个应用程序的组件放在此容器。它常声明于Application标签右边,通过使用dock属性,该容器会以应用程序完整宽度停驻在应用程序顶部。

    * ControlBar: 可VBox,可HBox。可作工具栏停靠在Panel容器底部。

      每个容器都有一个内置的布局管理器(layout manager),此管理器会处理其内组件摆放位置。

    (查看容器可能用法:Help --> Flex Start Page --> Flex Component Explorer - Run)

################

# 数据绑定

################

      数据绑定(data binding)即把数据绑定到“数据使用者”身上。

    Flex 2大大提高了AS变量与MXML标签的交互能力,但在变量能与标签充分互动之前,须指示变量使用这些能力。故用名为[Bindable]的Flex元标签来赋予变量此项能力。

################

# 组件

################

    /// 重视组件!

      很多组件需与其他组件交互,故组件文件的物理位置不应四处移动。取而代之,我们会创建由项目到所需组件的链接。我们要建立一个目录结构来存放组件,并对它们进行分类。大多数编程环境把这些目录称为包。

      ("File" -> "New" -> "MXML Component")

      命名空间(namespace)方法:给路径起一简单名字,则每次使用该名字时,程序便知在引用那个路径。应使用xmlns属性加冒号(:)再加路径名称方式在Application标签内定义命名空间。

      (Application标签内已有一个xmlns命名空间,它用来验证MXML代码的有效性。我们可在标签内定义多个命名空间)

      例:xmlns:comp="Components.Form_Component"

            组件内的变量(属性)可以在调用组件时以参数传递方式更改。同时亦可从组件接收参数,前提是给组件一个唯一的ID。

<--End-->

继续阅读