写点什么

Flex 开发者需要知道的 10 件事

  • 2010-02-18
  • 本文字数:1606 字

    阅读完需:约 5 分钟

不久前, Michael Portuesi 发表了一篇博文,谈到了Flex 开发者需要知道的10 件事。文章介绍了每个进入Flex 领域的开发者都需要掌握的基本知识与技能。

Michael Portuesi 给出的 10 个条目中,有些是开发者需要了解的简单细节信息;有些则揭示了 Flash/ActionScript/Flex 与其他开发环境之间的差别。

如果你了解 HTML/CSS 并熟悉 JavaScript,但却对 ActionScript 或 Flex 一无所知的话,那么应该花些时间学习一下面向对象编程,因为 ActionScript 是一门完全的面向对象编程语言,而 Flex 则是一个面向对象的框架。

1. 再简单的东西也是异步的

Flex 是一个异步框架,因此我们绝对不能指望代码调用后就能立刻执行。事实上,我们是无法预知方法的调用序列的。

2. 搞清楚 Flex 组件的样式与属性

Flex UI 组件(按钮、菜单等等)既有属性(通过 ActionScript 语言指定)也有样式(通过 Flex 框架指定)。搞清楚他们之间的区别是非常重要的,因为组件的某些可视化效果可以通过属性指定,但另一些却只能通过样式设定。通过属性指定:

复制代码
button.width = 100;
button.height = 50;

通过样式指定:

复制代码
<mx:Style>
Button {
color: #cc0000;
textRollOverColor: #ccff00;
fontFamily: Trebuchet MS;
}
</mx:Style>
<mx:Button id="setupB" text="Click Me" click="onSetup()" />

3. Flex 中的样式与 HTML 中的不尽相同

可以使用标准的 CSS 样式表来为 Flex 组件添加样式,也可以在 Flex 应用中包含 CSS 样式表。虽然标准 CSS 使用连字符(例如 text-font)格式来定义样式名称,但是 Flex 使用驼峰式的命名格式(例如 textFont)。这是因为连字符不能出现在 XML 的属性中,所以不能用这样的名字作为 MXML 标签的属性。

当然了,如果把样式定义在外部的 CSS 文件中或者 Style 标签中,也可以使用连字符格式的样式名。此外,Flex 还定义了很多 HTML 中不存在的 CSS 样式。

4. 尽管看起来不同,但 MXML 和 ActionScript 本质上是一回事

在 Flex 中声明的所有 MXML 标签都会被 Flex 编译器转换为 ActionScript 代码;当然了,也可以在 MXML 文件中嵌入内联的 ActionScript 代码。既可以使用 MXML 也可以使用 ActionScript 创建新组件。

5. 理解 Flex 的 Code-behind 模式

虽然 MXML 和 ActionScript 本质上是一样的,但他们各司其职。一般来说,MXML 负责显示界面,而 ActionScript 用来完成功能。Code-behind 用于解耦 MXML 和 ActionScript,这样设计师可以直接修改 MXML 而无需阅读代码,程序员则可以更好地组织和重用功能。

6. 理解 Flex 组件的生命周期

Flex 通过状态机机制定义了一套完美的生命周期模型,用于组件的创建、运行和销毁,还定义了一些“入口”,开发者可以借此完成定制化的工作。没有透彻理解组件的生命周期可能会导致错误的编程模型。

7. 理解 Flash 运行时所使用的“跑道”模型

理解 Flash Player 的渲染和代码执行机制非常重要的。在执行了改变界面的指令时,Flash Player 并不是立刻把你要的内容显示在屏幕上,它根据一定的周期来刷新屏幕,而代码的执行则是另一回事。这和 Java 正好相反,Java 总是等待程序主动告诉它什么时候重绘屏幕。

8. 理解数据绑定与查看器(Watcher)

Flex 提供了一种数据绑定机制。简单地说,就是将一个源属性绑定到一个目标属性上,当源属性发生变化时,目标属性也会随之变化。不仅仅可以绑定到属性,还可以绑定到函数。甚至可以为某个属性创建一个 Watcher,当属性变化时会获得事件通知。

9. 数据封装与松耦合非常重要

对于 Flex 和 AIR 项目来说,代码组织与高层结构非常重要。有些人竟然在一个文件中编写了 1000 多行代码,这导致的问题就是牵一发而动全身。

10. 理解 ActionScript 中的弱引用与强引用

不管使用何种语言与开发环境,内存管理始终是一个重要的问题,ActionScript 也不例外。如果不理解运行时环境的内存管理,那么很容易就会出现内存泄露与内存碎片问题。请阅读这篇博文文章来深入了解 ActionScript 的垃圾收集机制。

2010-02-18 01:259151
用户头像

发布了 88 篇内容, 共 271.0 次阅读, 收获喜欢 9 次。

关注

评论

发布
暂无评论
发现更多内容

如何编写有效的常见问题解答页面?

Geek_da0866

2022上半年PMP考试通过率得多低,才能换来一次免费补考机会

索隆

GitHub破百万访问的阿里神作:并发实现原理JDK源码笔记

冉然学Java

Java 编程 jdk 源码刨析 JDK 1.5

将使用回调函数作为参数的函数改造为返回 Promise 的一个具体例子

汪子熙

JavaScript web开发 Promise 异步编程 8月月更

从程序员到架构师,阿里巴巴2022全新出品Java程序员“成长笔记”满足了我的所有幻想

Java全栈架构师

Java 程序员 面试 后端 架构师

字节跳动嵌入式数据分析最佳实践

字节跳动数据平台

字节跳动 数据分析 BI 嵌入式分析 数据看板

个推TechDay直播预告 | 8月24日晚19:30,实时数仓搭建保姆级教程开课

个推

数据仓库 实时数仓 Flink 平台

技术团队管理者的三十六计

申屠鹏会

团队管理

合作再升级!云原生加速器成员企业云霁科技获得阿里云产品生态集成认证

阿里巴巴中间件

阿里云 云原生 合作 阿里云云原生加速器

有关Java性能优化,这是我见过阿里大佬总结的最全的一份实战文档了

程序员小毕

Java 程序员 面试 程序人生 性能优化

程序员面试太卷?我选择背这份阿里最新Java面试八股文(详解版)

Java面试那些事儿

Java 面试 Java 面试 java程序员 java 编程

EMAS Serverless到底有多便利?

hum建应用专家

云计算 Serverless emas

短视频源码APP开发——短视频的功能

开源直播系统源码

软件开发 直播系统源码 短视频直播系统

从函数计算到 Serverless 架构

阿里巴巴中间件

阿里云 开源 Serverless 云原生

避免 10 大 NGINX 配置错误(下)

NGINX开源社区

nginx 配置 配置分析 故障排除

渲染与云渲染——渲染行业的新趋势

Finovy Cloud

云渲染 GPU算力

浅谈云上攻防系列——云IAM原理&风险以及最佳实践

腾讯安全云鼎实验室

安全攻防 云安全 安全研究

罗技产品究竟能不能带来便捷感

Amazing_eve

#开源

openEuler代码贡献之星:麒麟软件裴建康

openEuler

开发者 成长 代码规范 openEuler 开源社区

开源贡献者计划 2022 第二期正式启动!争做战“码”先锋!

InfoQ写作社区官方

开源 OpenHarmony 热门活动

「望繁信科技」完成过亿元A+轮融资,全面加速流程智能产品建设

望繁信科技

【Java】:数组的创建、赋值、访问以及长度

翼同学

Java 学习 编程语言 分享 8月月更

如何开发一款基于 vite+vue3 的在线表格系统(下)

葡萄城技术团队

Vue 前端 vite

OpenYurt 邀你共赴 2022 EdgeX 中国挑战赛!

阿里巴巴中间件

阿里云 云原生 openyurt 边缘容器

架构设计文档模板

maybe

本周四晚19:00知识赋能第七期第2课丨OpenHarmony WiFi扫描仪UX设计

OpenHarmony开发者

Open Harmony

多线程+JVM+设计模式+数据库,阿里巴巴Java性能优化全解实战笔记真香

Java永远的神

Java 数据库 程序员 面试 多线程

大专的我狂刷29天“阿里内部面试笔记”最终直接斩获十七个Offer

收到请回复

Java 程序员 阿里 面试八股文 Java面试八股文

泄露了,Alibaba697页的MySQL应用实战与性能调优手册,太强了

冉然学Java

Java MySQL 编程 性能优化 构架

Java架构岗9大性能优化经验总结,我不允许你不会

程序员小毕

Java 数据库 程序员 面试 程序人生

Flex开发者需要知道的10件事_Java_张龙_InfoQ精选文章