现在的位置: 首页 > 综合 > 正文

Flex记录1

2013年09月14日 ⁄ 综合 ⁄ 共 1941字 ⁄ 字号 评论关闭

09.10.27

Flex应用程序主要由2种不同的语言构成:

     AS

     MXML

 

MXMLAS如何互相关联:

<mx:Button id=”btn” label=”My Button” height=”100”/>

等于

var btn:Button=new Button();

btn.label=”My Button”;

btn.height=100;

 

将会生成同样的对象。

 

主要不同在于:

AS仅仅创建按钮而不做任何其他事情。

MXML创建一个按钮并将其添加到包含MXML代码的任意类型的一个组件。

 

Flex Framework负责处理MXML中对象构造器的调用

 

MXML文件能够用<mx:Script>标签将AS包含其中,而AS文件却不能包含MXML

 

2种语言通过不同的语法最终都描述了同样的对象

 

MXML中添加时间监听器

用来监听MXML文件中子对象调度的任何事件

 

当发生动作时Flex组件总会调度事件。例如用户点击按钮。要监听这些被广播的事件,只要增加一个对处理该事件的函数。

 

Flex中的事件对象和事件调度系统式应该理解的最重要的内容之一。所有的事件都包含一种类型,在事件被监听时会用到这种类型。如果一个事件的类型为click,那么事件监听函数则被添加到子对象的click事件中:

<mx:Button click=”trace(‘I was clicked’)”/>

 

用户交互操作的通知,从服务器端发送到应用程序的消息或者定时器等都通过事件来发送。

 

ASMXML中定义的子对象设置属性:

我们很容易会认为组件的脚本部分与MXML部分是相互独立的,但其实他们完全不是独立的。

 

id必须是唯一的名称,用来在整个应用程序中引用父组件中的子组件。

 

 

定义数组和对象集:

Flex中很多东西一样,数组和对象集作为2种最常用的用于存储数据的数据类型。

MXML中定义一个数组,使用<mx:Array>标签。

<mx:Array>

       <mx:String>Flex</mx:String>

       <mx:String>Flash</mx:String>

</mx:Array>

 

MXML中创建一个对象,使用<mx:Object>标签。

<mx:Object id=”person” age=”50” name=”Anson”/>

 

MXML中创建对象的局限性在于不能创建多个嵌套对象。

 

设置AS中变量的作用域:

Private变量和函数只在组件自身范围内可见,其他组件无法访问他们。

 

final修饰符,用于向编译器说明该方法不能被继承该类的其他类修改。

 

     AS中,构造器是被显式调用的。

     MXML中,Person的构造器是在包含Person对象的父组件的构造器被调用时才被调用的。

 

使用时间冒泡:

有几种类型的时间能够冒泡向上传递:

     鼠标按下事件,点击时间

     键盘事件

“冒泡”这个词指的是事件沿着显示列表向上传递直到应用程序容器,就像是一个水泡在水中向上浮到水面。

 

为了让父组件监听到子组件中某种类型的所有事件,父组件只需要添加一个对子组件的事件监听器,就能够接收到所有冒泡的事件。

 

使用Code-Behind模式分离MXMLAS

 

<cookbook:CodeBehindComponent xmlns:mx=http://www.adobe.com/2006/mxml width=”200”

height=”400” xmlns:cookbook=”oreilly.cookbook.*”>

<mx:Button click=”clickHandler(event)”/>

</cookbook:CodeBehindComponent>

 

CodeBehindComponent的定义:

package oreilly.cookbook{

       import mx.containers.Canvas;

       import flash.events.Event;

       public class CodeBehindComponent extends Canvas{

              ///////////////……………….

              protected function clickHandler(event:Event):void{

                            trace(“Click handled from component”+event.target);

              }

       }

}

 

可以看出来类CodeBehindComponent中定义了函数clickHandler,这就是控制器和视图展现的分离概念。

抱歉!评论已关闭.