- 浏览: 1084825 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (695)
- 心情日记 (14)
- AS开发工具 (12)
- 文章转载 (99)
- AIR (5)
- 问题总结 (46)
- SWF格式 (7)
- 测试总结 (10)
- 外文资料 (9)
- 算法技术 (33)
- AS3常用开源库 (43)
- 源码范例 (102)
- FLEX (72)
- FLASH 优化 (33)
- 游戏开发 (49)
- 开发技术 (11)
- 工作应用 (34)
- AS3收集 (140)
- WebBase (0)
- 开发构想 (4)
- 设计模式 (2)
- 框架和框架范例 (19)
- RED5 (3)
- java开发 (3)
- JAVA (1)
- FLASH-3D (23)
- 3D (6)
- 书籍 (10)
- 业界信息资料 (3)
- C# (1)
- JavaScript (12)
- HTML5 (6)
- Flixel (1)
- D5Power RPG网页游戏引擎 (0)
- ColorMatrixFilter - 获得相应颜色的色调 函数 (0)
- Starling (0)
最新评论
-
老顽童203:
字体
水果忍者鼠标跟随特效制作[转载] -
hairball00:
[转] 放出超多的Flash组件源代码 -
he74552775:
flash AS3 RegExp简单功能用法(转) -
hanshuai1232000:
第四点,有利也有弊,等你做了大型的aprg,你就知道了
[转]位图数据内存优化 -
yangfantao:
太感谢
[转] 放出超多的Flash组件源代码
http://blog.csdn.net/chen98qqkk/archive/2010/09/30/5916002.aspx
先简单解释下背景知识:
从FLEX4开始,所有web程序都默认使用RSL的编译方式。那用RSL编译的FLEX站点和普通FLEX站点有什么区别呢?简单的说就是,flash player会在你第一次访问任何一个这种FLEX站点时,缓存下大约1M的类库在系统里。下次用户访问这个站点或者任何其他flex站点时都不用再下载类库这部分文件。RSL编译方式就是在编译时把类库都分离出去了。这种编译方式,在同类flash程序通常大小要接近1M的情况下,可以编出100K左右的整站程序,比一张图片都小。好处自然是非常节省带宽和加载时间。我现在做的几个FLEX站点都采用这种编译方式,加上皮肤也采用全矢量绘图,编译出来的整站程序都保持在100K左右,有效的解决了FLASH加载慢的最大问题。
但问题出来了,有一小部分用户第一次访问站点时,总是出现无法缓存类库的问题,表现就是报错"ERROR:#2046"。或者有些用户原来能够访问成功(说明已经成功缓存过类库了),但突然也开始报错了。直接导致的后果就是根本不能加载程序,想要节省加载时间反而导致不能加载,让我一直很苦恼。从做第一个FLEX4程序开始,我就发现了这个问题,当时只有我的电脑不能访问我写的站点,而大家都能,并且我重装了系统几次,都不行。后来不知道怎么的,我又突然就能访问了,就没有太在意这个问题。现在想想,那时候我干了一件他们都没干的事:我修改过系统时间。调整到2008年了。
正好最近又无意中在论坛上看到高人解答,原来报错的用户也都存在同样的问题:系统时间出错了。因为用户系统的时间早于缓存的类库的有效签名时间,被flash player拒绝加载了。那时我刚好在实验室,又这么刚好就有台电脑就不能访问,查下它的时间是2000年。旁边的电脑都能访问。就修改了下时间测试,马上加载成功了~
困扰我很久的问题终于解决了,非常之高兴,遂写了个js脚本加在网页里,加载前先判断下服务器和客户机的时间差。如果太大就弹出提示。让用户把时间改正确,或者就直接跳转到我准备好的无类库缓存版站点。我有给每个flex站点都加上这种无缓存的版本,供应急用。就是简单再写一个full.html,把引用的程序改成对应的非RSL编译方式生成的swf即可。访问方法为:URL后加上full.html,使用上不会有任何差别。
那么RSL的问题算是完美解决了,顺便也把另一个问题解决了吧:在FLEX站点访问时,还会出现另一个问题,就是很多客户机的FLASH PLAYER版本过低,导致FLEX程序不加载,表现为一片空白,不提示任何信息(只有没有安装FP时,浏览器才会自动提示)。这会让用户误以为站点不能访问了。解决办法也是加上个JS脚本,判断一下FP的版本先。下面附上两个JS脚本,在IE/Firefox/chrome测试均完美通过。
检测时间差的JS脚本:
view plaincopy to clipboardprint?
01.var timegap = checkTime();
02.if(timegap>48)
03.{
04. alert("提示:我们检测到您的系统时间与服务器相差超过了48小时,\n这有可能导致程序无法加载。建议您修改回正确的系统时间,\n或在网址后加上full.html访问程序的无缓存版本。谢谢~")
05.}
06.
07.
08.
09.function checkTime()
10.{
11.var xmlHttp = false;
12.//获取服务器时间
13.try {
14.xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
15.} catch (e) {
16.try {
17. xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
18.} catch (e2) {
19. xmlHttp = false;
20.}
21.}
22.
23.if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
24.xmlHttp = new XMLHttpRequest();
25.}
26.
27.xmlHttp.open("GET", "null.txt", false);
28.xmlHttp.setRequestHeader("Range", "bytes=-1");
29.xmlHttp.send(null);
30.
31.severtime=new Date(xmlHttp.getResponseHeader("Date"));
32.//获取客户端时间
33.localtime=new Date();
34.//取得时间差
35.var jtime=Math.abs(localtime.getTime()-severtime.getTime());
36.return jtime/(60*60*1000); ;
37.}
var timegap = checkTime();
if(timegap>48)
{
alert("提示:我们检测到您的系统时间与服务器相差超过了48小时,\n这有可能导致程序无法加载。建议您修改回正确的系统时间,\n或在网址后加上full.html访问程序的无缓存版本。谢谢~")
}
function checkTime()
{
var xmlHttp = false;
//获取服务器时间
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e2) {
xmlHttp = false;
}
}
if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
xmlHttp = new XMLHttpRequest();
}
xmlHttp.open("GET", "null.txt", false);
xmlHttp.setRequestHeader("Range", "bytes=-1");
xmlHttp.send(null);
severtime=new Date(xmlHttp.getResponseHeader("Date"));
//获取客户端时间
localtime=new Date();
//取得时间差
var jtime=Math.abs(localtime.getTime()-severtime.getTime());
return jtime/(60*60*1000); ;
}
检测Flash Player版本的JS脚本:
view plaincopy to clipboardprint?
01.var fls=flashChecker();
02.if(fls<10)
03.{
04. alert("您安装的Flash Player版本过低,页面即将跳转到Flash Player 10安装页面\n安装完成后请重启浏览器即可使用~");
05. window.location.href="http://get.adobe.com/cn/flashplayer/"; //如果你的程序是建设在内网,建议修改这个地址为你的内网链接
06.}
07.
08.function flashChecker()
09.{
10.var flashVersion=0; //flash版本
11.
12.if(document.all)
13.{
14.var swf = new ActiveXObject('ShockwaveFlash.ShockwaveFlash');
15.if(swf) {
16.VSwf=swf.GetVariable("$version");
17.flashVersion=parseInt(VSwf.split(" ")[1].split(",")[0]);
18.}
19.}else{
20.if (navigator.plugins && navigator.plugins.length > 0)
21.{
22.var swf=navigator.plugins["Shockwave Flash"];
23.if (swf)
24. {
25. var words = swf.description.split(" ");
26. for (var i = 0; i < words.length; ++i)
27.{
28. if (isNaN(parseInt(words[i]))) continue;
29. flashVersion = parseInt(words[i]);
30.}
31.}
32.}
33.}
34.return flashVersion;
35.}
var fls=flashChecker();
if(fls<10)
{
alert("您安装的Flash Player版本过低,页面即将跳转到Flash Player 10安装页面\n安装完成后请重启浏览器即可使用~");
window.location.href="http://get.adobe.com/cn/flashplayer/"; //如果你的程序是建设在内网,建议修改这个地址为你的内网链接
}
function flashChecker()
{
var flashVersion=0; //flash版本
if(document.all)
{
var swf = new ActiveXObject('ShockwaveFlash.ShockwaveFlash');
if(swf) {
VSwf=swf.GetVariable("$version");
flashVersion=parseInt(VSwf.split(" ")[1].split(",")[0]);
}
}else{
if (navigator.plugins && navigator.plugins.length > 0)
{
var swf=navigator.plugins["Shockwave Flash"];
if (swf)
{
var words = swf.description.split(" ");
for (var i = 0; i < words.length; ++i)
{
if (isNaN(parseInt(words[i]))) continue;
flashVersion = parseInt(words[i]);
}
}
}
}
return flashVersion;
}
解决了这两个问题,现在就可以放心部署FLEX4站点了~
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/chen98qqkk/archive/2010/09/30/5916002.aspx#
return flashVersion;
}
解决了这两个问题,现在就可以放心部署FLEX4站点了~
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/chen98qqkk/archive/2010/09/30/5916002.aspx
先简单解释下背景知识:
从FLEX4开始,所有web程序都默认使用RSL的编译方式。那用RSL编译的FLEX站点和普通FLEX站点有什么区别呢?简单的说就是,flash player会在你第一次访问任何一个这种FLEX站点时,缓存下大约1M的类库在系统里。下次用户访问这个站点或者任何其他flex站点时都不用再下载类库这部分文件。RSL编译方式就是在编译时把类库都分离出去了。这种编译方式,在同类flash程序通常大小要接近1M的情况下,可以编出100K左右的整站程序,比一张图片都小。好处自然是非常节省带宽和加载时间。我现在做的几个FLEX站点都采用这种编译方式,加上皮肤也采用全矢量绘图,编译出来的整站程序都保持在100K左右,有效的解决了FLASH加载慢的最大问题。
但问题出来了,有一小部分用户第一次访问站点时,总是出现无法缓存类库的问题,表现就是报错"ERROR:#2046"。或者有些用户原来能够访问成功(说明已经成功缓存过类库了),但突然也开始报错了。直接导致的后果就是根本不能加载程序,想要节省加载时间反而导致不能加载,让我一直很苦恼。从做第一个FLEX4程序开始,我就发现了这个问题,当时只有我的电脑不能访问我写的站点,而大家都能,并且我重装了系统几次,都不行。后来不知道怎么的,我又突然就能访问了,就没有太在意这个问题。现在想想,那时候我干了一件他们都没干的事:我修改过系统时间。调整到2008年了。
正好最近又无意中在论坛上看到高人解答,原来报错的用户也都存在同样的问题:系统时间出错了。因为用户系统的时间早于缓存的类库的有效签名时间,被flash player拒绝加载了。那时我刚好在实验室,又这么刚好就有台电脑就不能访问,查下它的时间是2000年。旁边的电脑都能访问。就修改了下时间测试,马上加载成功了~
困扰我很久的问题终于解决了,非常之高兴,遂写了个js脚本加在网页里,加载前先判断下服务器和客户机的时间差。如果太大就弹出提示。让用户把时间改正确,或者就直接跳转到我准备好的无类库缓存版站点。我有给每个flex站点都加上这种无缓存的版本,供应急用。就是简单再写一个full.html,把引用的程序改成对应的非RSL编译方式生成的swf即可。访问方法为:URL后加上full.html,使用上不会有任何差别。
那么RSL的问题算是完美解决了,顺便也把另一个问题解决了吧:在FLEX站点访问时,还会出现另一个问题,就是很多客户机的FLASH PLAYER版本过低,导致FLEX程序不加载,表现为一片空白,不提示任何信息(只有没有安装FP时,浏览器才会自动提示)。这会让用户误以为站点不能访问了。解决办法也是加上个JS脚本,判断一下FP的版本先。下面附上两个JS脚本,在IE/Firefox/chrome测试均完美通过。
检测时间差的JS脚本:
view plaincopy to clipboardprint?
01.var timegap = checkTime();
02.if(timegap>48)
03.{
04. alert("提示:我们检测到您的系统时间与服务器相差超过了48小时,\n这有可能导致程序无法加载。建议您修改回正确的系统时间,\n或在网址后加上full.html访问程序的无缓存版本。谢谢~")
05.}
06.
07.
08.
09.function checkTime()
10.{
11.var xmlHttp = false;
12.//获取服务器时间
13.try {
14.xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
15.} catch (e) {
16.try {
17. xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
18.} catch (e2) {
19. xmlHttp = false;
20.}
21.}
22.
23.if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
24.xmlHttp = new XMLHttpRequest();
25.}
26.
27.xmlHttp.open("GET", "null.txt", false);
28.xmlHttp.setRequestHeader("Range", "bytes=-1");
29.xmlHttp.send(null);
30.
31.severtime=new Date(xmlHttp.getResponseHeader("Date"));
32.//获取客户端时间
33.localtime=new Date();
34.//取得时间差
35.var jtime=Math.abs(localtime.getTime()-severtime.getTime());
36.return jtime/(60*60*1000); ;
37.}
var timegap = checkTime();
if(timegap>48)
{
alert("提示:我们检测到您的系统时间与服务器相差超过了48小时,\n这有可能导致程序无法加载。建议您修改回正确的系统时间,\n或在网址后加上full.html访问程序的无缓存版本。谢谢~")
}
function checkTime()
{
var xmlHttp = false;
//获取服务器时间
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e2) {
xmlHttp = false;
}
}
if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
xmlHttp = new XMLHttpRequest();
}
xmlHttp.open("GET", "null.txt", false);
xmlHttp.setRequestHeader("Range", "bytes=-1");
xmlHttp.send(null);
severtime=new Date(xmlHttp.getResponseHeader("Date"));
//获取客户端时间
localtime=new Date();
//取得时间差
var jtime=Math.abs(localtime.getTime()-severtime.getTime());
return jtime/(60*60*1000); ;
}
检测Flash Player版本的JS脚本:
view plaincopy to clipboardprint?
01.var fls=flashChecker();
02.if(fls<10)
03.{
04. alert("您安装的Flash Player版本过低,页面即将跳转到Flash Player 10安装页面\n安装完成后请重启浏览器即可使用~");
05. window.location.href="http://get.adobe.com/cn/flashplayer/"; //如果你的程序是建设在内网,建议修改这个地址为你的内网链接
06.}
07.
08.function flashChecker()
09.{
10.var flashVersion=0; //flash版本
11.
12.if(document.all)
13.{
14.var swf = new ActiveXObject('ShockwaveFlash.ShockwaveFlash');
15.if(swf) {
16.VSwf=swf.GetVariable("$version");
17.flashVersion=parseInt(VSwf.split(" ")[1].split(",")[0]);
18.}
19.}else{
20.if (navigator.plugins && navigator.plugins.length > 0)
21.{
22.var swf=navigator.plugins["Shockwave Flash"];
23.if (swf)
24. {
25. var words = swf.description.split(" ");
26. for (var i = 0; i < words.length; ++i)
27.{
28. if (isNaN(parseInt(words[i]))) continue;
29. flashVersion = parseInt(words[i]);
30.}
31.}
32.}
33.}
34.return flashVersion;
35.}
var fls=flashChecker();
if(fls<10)
{
alert("您安装的Flash Player版本过低,页面即将跳转到Flash Player 10安装页面\n安装完成后请重启浏览器即可使用~");
window.location.href="http://get.adobe.com/cn/flashplayer/"; //如果你的程序是建设在内网,建议修改这个地址为你的内网链接
}
function flashChecker()
{
var flashVersion=0; //flash版本
if(document.all)
{
var swf = new ActiveXObject('ShockwaveFlash.ShockwaveFlash');
if(swf) {
VSwf=swf.GetVariable("$version");
flashVersion=parseInt(VSwf.split(" ")[1].split(",")[0]);
}
}else{
if (navigator.plugins && navigator.plugins.length > 0)
{
var swf=navigator.plugins["Shockwave Flash"];
if (swf)
{
var words = swf.description.split(" ");
for (var i = 0; i < words.length; ++i)
{
if (isNaN(parseInt(words[i]))) continue;
flashVersion = parseInt(words[i]);
}
}
}
}
return flashVersion;
}
解决了这两个问题,现在就可以放心部署FLEX4站点了~
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/chen98qqkk/archive/2010/09/30/5916002.aspx#
return flashVersion;
}
解决了这两个问题,现在就可以放心部署FLEX4站点了~
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/chen98qqkk/archive/2010/09/30/5916002.aspx
发表评论
-
Flex数据绑定及其使用频繁的几种情况
2011-10-20 03:39 1440http://developer.51cto.com/art/ ... -
揭开Flex正则表达式的神秘面纱
2011-10-20 03:38 1214http://developer.51cto.com/art/ ... -
Flex模块化开发优势及技巧解析
2011-10-20 03:38 1743http://developer.51cto.com/art/ ... -
Flex模块化应用程序开发
2011-10-20 03:38 1160http://developer.51cto.com/art/ ... -
[转]Flex模块化的目的及其步骤
2011-10-20 03:35 1195http://developer.51cto.co ... -
翻译: Flash文本引擎, 第三部分: 布局
2011-10-20 02:36 0http://www.riade ... -
翻译: Flash文本引擎, 第二部分: 交互
2011-10-20 02:34 0http://www.riadev.com/flex-thre ... -
翻译: Flash文本引擎, 第一部分: 概述
2011-10-20 02:33 0http://www.riadev.com/flex-thre ... -
[转]flex操作XML,强力总结帖
2011-08-16 01:10 1043http://qiqishou.iteye.com ... -
[转]用ActionScript 开发高级可视化组件
2011-08-14 04:37 0用ActionScript 开发高级可视化组件 -
[转]AIR2.0 NativeProcess in Flash Builder 4.0
2011-08-07 23:37 1479AIR2.0 NativeProcess in Fla ... -
[转] Actionscript项目嵌入图片(设置九宫格缩放)
2011-07-27 02:04 2352我们知道在Flex项目中,嵌入外部图片,可以使用 [E ... -
[转]NumericStepper添加百分号
2011-07-26 23:32 1130请问 NumericStepper组件中添加百分号 ... -
[新闻资讯] [Flash/Flex] 走自己的路:重写AIR移动应用程序中的BACK按键
2011-06-15 13:44 1239http://bbs.9ria.com/viewthread. ... -
[转]关于Spark List控件和Spark DataGrid控件的提示
2011-06-02 05:23 1433http://bbs.9ria.com/viewthread. ... -
flex 3 能使用openwithDefaultApplication吗
2011-06-02 05:05 0最近用到了 使用air 来开启外部的程序。 我知道flash ... -
[Flex]Flex编程注意之Flex Complier参数
2011-05-19 19:56 1088http://fykyx521.iteye.com/blog/ ... -
Aarry和AarryCollection
2011-05-18 00:06 1220在AS3里面,数组里面可以存储字符串、数字、布尔值、或引用的类 ... -
[Flash/Flex] 给一个TitleWindow添加按钮的方法
2011-05-07 01:38 1685资讯类型: 翻译 来源页面: http://userflex. ... -
[转][Android] Android桌面应用程序-交通灯游戏源码
2011-04-25 02:46 0http://bbs.9ria.com/viewthread. ...
相关推荐
Flex RSL(Runtime Shared Libraries)是Adobe Flex框架中的一种机制,用于优化应用程序的加载和运行时性能。RSLs是一组预编译的库,包含了常见的Flex组件和类,允许多个应用程序共享这些资源,减少网络传输的数据量...
OTIS-RSL串行协议是一种远程串行链接协议,通常用于电梯控制系统中的通信。以下为从标题、描述、标签以及部分内容中提取出的知识点。 1. OTIS-RSL串行协议概述: OTIS-RSL协议是一种远程串行通信协议,它允许电梯...
SWC是Shared Library Container的缩写,用于存储编译后的ActionScript类、资源和其他编译后的Flex组件。创建SWC通常涉及创建一个Flex库项目,在源代码目录下放置你的类和资源,然后构建项目以生成SWC文件。 ### 5. ...
2. **优化Flex应用程序大小**:除了使用RSL之外,还可以通过模块化设计(Module)和优化资源等方式来减小应用程序的整体大小。 3. **NaN 比较**:在Flex中,`NaN` 与其他任何值(包括自身)比较都会返回 `false`。因此...
通过设置Flex构建路径,将框架链接方式改为"runtime shared library (RSL)",Flex编译器会将框架文件分离出来,形成独立的`.swf`和`.swz`文件。这些文件会在用户首次加载SWF时被下载并缓存到客户端,之后的加载将...
- **错误代码**:定义了一系列错误代码用于指示通信过程中可能出现的问题。 #### 四、总结 RSL远程串行接口协议作为Otis电梯公司内部通信的重要标准之一,不仅支持了高效稳定的数据传输,还具备高度的安全性和灵活...
标题中的“rsl.rar_RSL Matlab_attribute reduction_rsl”暗示了这是一个与RSL相关的MATLAB代码库,专注于属性约减技术。RSL通常代表Reduced Set Learning或Relevance Set Learning,这是一种在机器学习和数据挖掘...
【Flex面试题】Flex面试题主要涵盖Flex的基础概念、开发框架、MVC模式的应用、内存管理、垃圾回收机制、前端性能优化以及与后端通信等多个方面。以下是对这些知识点的详细解析: 1. AS2与AS3的区别: AS2...
OTIS-RSL串行协议是应用于奥地斯电梯系统中的一种远程串行接口协议标准。该协议在电梯控制系统通信体系结构中扮演关键角色,特别是在远程通信信道,如长电梯通道的通信中。 首先,我们来了解OSI(开放式互联参考...
### Flex面试题及答案解析 #### 1. 如何避免容器显示滚动条? 在Flex中,如果不想在容器中显示滚动条,可以通过设置`horizontalScrollPolicy`和`verticalScrollPolicy`属性为`off`来实现。这两个属性控制着水平和...
### 使用Flash Builder进行Scratch的二次开发与编译 #### 一、背景介绍 Scratch 是一款由麻省理工学院媒体实验室开发的图形化编程工具,主要面向青少年学习编程的基础概念。然而,对于想要深入定制 Scratch 的...
RSL(Resources Share List)类库是一个用于资源共享和管理的软件开发工具,广泛应用于软件工程领域,特别是那些需要高效协作和资源复用的项目。RSL库提供了丰富的API和功能,帮助开发者轻松实现数据共享、对象通信...
在本文中,我们将深入探讨"RSL10 射频测试资源"的相关知识点,主要涉及射频技术、蓝牙低功耗(BLE)通信以及RSL10芯片的应用。RSL10是一款高度集成的无线微控制器,专为超低功耗蓝牙应用而设计。其在射频测试中扮演...
一个简单的应用程序,用于演示 onsemi RSL10/RSL15 蓝牙低功耗设备的无线固件 (FOTA)。 RSL10 和 RSL15 是来自 onsemi 的超低功耗蓝牙低功耗无线微控制器。 FOTA 应用程序充当中央设备来扫描、连接固件映像并将其...
OTIS-RSL远程串行接口协议标准大全.PDF
【RSL10-SENSE-DB-GEVB_GERBER_hardware_rsl10_castcpf】这个压缩包文件主要涉及的是基于RSL10芯片的传感器开发板(RSL10-SENSE-DB)的硬件设计资料,其中包含了GERBER文件。RSL10是一款由ON Semiconductor公司生产...
例如,当一个Flex应用程序试图从不同域名的服务器获取数据时,如果没有适当的配置,将会遇到安全错误。解决这一问题的一种常见方法是在服务器端放置一个名为`crossdomain.xml`的文件,该文件定义了哪些域被允许访问...
Flex的反射功能与Java类似,但考虑到Flex的编译模型和运行环境,其实现方式有所不同。在Flex中,反射主要通过`Class`和`Reflect`类来实现。`Class`类用于表示特定类型的类信息,而`Reflect`类则提供了一系列方法用于...
Flex Builder 3是基于Eclipse的集成开发环境(IDE),使得开发者能更便捷地进行Flex应用的开发,其界面和操作方式与Eclipse相似。 Flex应用程序本质上是将Flash的SWF格式文件嵌入到HTML页面中,从而创建出可与...