也谈Flex组件的生命周期
引子:作于一名由ASP.NET开发转到Flex开发的程序员,最开始适应的过程是相当愉悦和轻松的。由于我早在ASP.NET中习惯了标签式的布局和对应的code behind的编程方式,在Flex中的MXML语言只不过是MXML元素和AS3语法的重新熟悉。但是就像ASP.NET中的标记语言,MXML只不过是AS3的一种封装,归根到底它会被转化成AS3再进行编译,所以,只有了解这门语言的底层运行机制,才有可能真正成为一名优秀的Flex开发人员。由于有过ASP.NET的开发经验,我清楚地认识到像这种以XML标签为基础的组件式的开发方式,只有弄清楚组件的生命周期,才能进行高级开发,才能在遇到复杂情况时有思路去解决,就像做ASP.NET的开发要熟悉页面的生命周期一样。
为此,我刚接触Flex不久就开始研究Flex组件的生命周期。幸运的是,Flex Builder内嵌的帮助文件十分犀利,很容易就查到了Flex组件的的生命周期部分。不幸的是作为没有Flash开发经验的程序员,对里面的某些名词并不是很明白。就这样在没有Flash基础的情况下,我曾经看过很多遍帮助文件,但感觉脑子里一直不是很清楚,对整个生命周期不能形成一个完整的轮廓。最后终于滤清了一些思路,结果还是停在了一个名词上,叫做“Render Event”。里面两次提到了这个词,都是在关键的地方。前些天搞到了《Essential.ActionScript.3.0》的电子版,阅之如醍醐灌顶,不愧为AS3的经典。其中一章就专门讲了Flash运行时的屏幕更新机制,里面当然也提到了Flex帮助文件中所谓的“Render Event”。
先看看Flex帮助文件是怎么说的吧,这里拷贝了原文(可以先略过,只为提供参考):
You call the component’s constructor, as the following code shows:
// Create a Button control.
var b:Button = new Button()
You configure the component by setting its properties, as the following code shows:
// Configure the button control.
b.label = "Submit";
Component setter methods might call the invalidateProperties(), invalidateSize(), or invalidateDisplayList() methods.
You call the addChild() method to add the component to its parent, as the following code shows:
// Add the Button control to the Box container.
boxContainer.addChild(b);
Flex performs the following actions:
Sets the parent property for the component to reference its parent container.
Comput
相关文档:
Adobe Flex开发与传统的Web开发有很多不同之处。正确的理解和利用这些不同之处,可以帮助我们创建更丰富的用户体验,也可以反过来增加网站的可用性以及浏览和更新速度。Flex还提供了大量的组件和技术库来让Web开发更加轻松——它提供的强大工具要远远超过传统Web 2.0中的异步JavaScript和XML(Ajax)应用。此外, ......
一、使用本地样式定义
使用<mx:Style>标签在MXML文件中创建本地的样式定义。这个标签包含了符合CSS2.0语法的样式表定
义。这些定义会应用到当前文档以及当前文档的子文档。
<mx:style>
.solidBorder{//类选择样式
border-style:solid;
}
button{//组件定义样式
border-style:solid;
}
....
</mx: ......
使用flex tree 和list实现如下选择用户的效果
<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical"
showCloseButton="true" creationComplete ......
http://www.cnblogs.com/beniao/archive/2009/01/12/1373921.html
无法运行如上博客的代码,于是自己到网上找资料
发现在http://hi.baidu.com/littlelaa/blog/item/bdea73f2382289a6a50f5241.html
关键是C#中READLINE这个方法无法在三秒内读取,因为结尾没有/N /R等字符。
C#端
using System;
using System.Net.Socke ......
<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
width="550" height="400">
<mx:Script>
<![CDATA[
&n ......