最近被老板安排了个任务, 无奈只好学习一下 Flex, 苦逼的程序员啊, 前段时间为了做个爬虫, 才学了一趟 python, 现在又要学 flex, 好在感觉现在学一门新语言上手越来越快, 基本上看一晚上语法, 第二天写几个程序, 再回来把语法过一遍, 就差不多了. 不多说, 把一些记下来的要点整理一下.
-
Flex 程序主要由 MXML 代码与 ActionScript 代码组成, 有点类似 html+javascript, 但是在生成 swf 文件时, 会将所有的 MXML 代码转换成等价的 AS 代码
-
MXML 与 AS 代码混搭时, 需将 AS 代码写在 CDATA 标签内
-
AS 使用 trace 向 consol 输出指定文本, 但只在 debug 模式下进行输出, run 时不进行输出
-
AS 是大小写敏感的, 其编码风格类似 delphi, 即 变量类型在后, 声明函数时, 返回值类型也在最后. 不过 delphi 是大小写不敏感, 且由 begin end 做为代码段, 而 AS 使用的是 {}区分代码段
-
Flex 中容器内容的变化, 主要是由 STATE 的转变完成的, 而不像普通 html 程序一样, 由链接的跳转, 或 ajax 的局部加载来完成
-
可以使用 <mx:transitinos> 来创建一批状态的过渡, 从而达到动画的效果
-
定义函数时, 如果使用 private 前缀, 则说明此函数只在本文件内可以调用; 若声明为 public, 则在整个 project 里都可以调用
-
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"; }
-
类似 js, 在 AS 中也可以用 addEventListener 来动态为某个控件添加事件响应函数
-
只有在充当主文件的 MXML 文件中才可以用 Application 容器, 其他没有 Application 容器的 MXML 文件被称为 component, 以此可以对项目进行模块化调计.在 MXML 中, 每个模块相当于一个命名空间
-
Flex 使用自定义消息来在组件间传递数据
-
在 <mx:Metadata> 标签中声明事件
<mx:Metadata> [Event(name="nameDataShared"; type="flash.events.TextEvent")] </mx:Metadata>
-
创建事件
var myEvent:Event = new Event("nameDataShared");
-
派发事件
dispatchEvent(myEvent);
-
使用时类似 click 事件的使用即可, 在一个控件的标签里写上
其中 functionXXX 为一个具体定义的函数, 即为事件响应函数nameDataShared="functionXXX"
-
响应: 当有一个地方调用了 dispatchEvent 来派发事件时, 所以注册过 dispatchEvent 事件的控件都会接收到此事件,并调用其指定的响应函数, 如 functionXXX
-