flex 学习笔记(摘自《Flex3 程序设计》)

最近被老板安排了个任务, 无奈只好学习一下 Flex, 苦逼的程序员啊, 前段时间为了做个爬虫, 才学了一趟 python, 现在又要学 flex, 好在感觉现在学一门新语言上手越来越快, 基本上看一晚上语法, 第二天写几个程序, 再回来把语法过一遍, 就差不多了. 不多说, 把一些记下来的要点整理一下.

  1. Flex 程序主要由 MXML 代码与 ActionScript 代码组成, 有点类似 html+javascript, 但是在生成 swf 文件时, 会将所有的 MXML 代码转换成等价的 AS 代码

  2. MXML 与 AS 代码混搭时, 需将 AS 代码写在 CDATA 标签内

  3. AS 使用 trace 向 consol 输出指定文本, 但只在 debug 模式下进行输出, run 时不进行输出

  4. AS 是大小写敏感的, 其编码风格类似 delphi, 即 变量类型在后, 声明函数时, 返回值类型也在最后. 不过 delphi 是大小写不敏感, 且由 begin end 做为代码段, 而 AS 使用的是 {}区分代码段

  5. Flex 中容器内容的变化, 主要是由 STATE 的转变完成的, 而不像普通 html 程序一样, 由链接的跳转, 或 ajax 的局部加载来完成

  6. 可以使用 <mx:transitinos> 来创建一批状态的过渡, 从而达到动画的效果

  7. 定义函数时, 如果使用 private 前缀, 则说明此函数只在本文件内可以调用; 若声明为 public, 则在整个 project 里都可以调用

  8. Flex 中某个事件发生时, 在其事件的响应函数中会接收到一个 Event 类型的参数, 由 event.target 可获得指向事件的发送方的指针
    例:

    <mx:Button label="text", id="myButton", click="fillLabel(evnt)"/>
    private function fillLabel(evt: Event):void
    {
        myLable.text = evt.target.id + " is pressed";
    }

  9. 类似 js, 在 AS 中也可以用 addEventListener 来动态为某个控件添加事件响应函数

  10. 只有在充当主文件的 MXML 文件中才可以用 Application 容器, 其他没有 Application 容器的 MXML 文件被称为 component, 以此可以对项目进行模块化调计.在 MXML 中, 每个模块相当于一个命名空间

  11. Flex 使用自定义消息来在组件间传递数据

  • 在 <mx:Metadata> 标签中声明事件

    <mx:Metadata>
        [Event(name="nameDataShared"; type="flash.events.TextEvent")]
    </mx:Metadata>

  • 创建事件

    var myEvent:Event = new Event("nameDataShared");

  • 派发事件

    dispatchEvent(myEvent);

  • 使用时类似 click 事件的使用即可, 在一个控件的标签里写上

    nameDataShared="functionXXX"

    其中 functionXXX 为一个具体定义的函数, 即为事件响应函数

  • 响应: 当有一个地方调用了 dispatchEvent 来派发事件时, 所以注册过 dispatchEvent 事件的控件都会接收到此事件,并调用其指定的响应函数, 如 functionXXX

你可能感兴趣的:(Flex)