<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Flex Home &#187; FLEX</title>
	<atom:link href="http://flex.desizen.com/category/flex/feed/" rel="self" type="application/rss+xml" />
	<link>http://flex.desizen.com</link>
	<description>又一个 flex 博客</description>
	<lastBuildDate>Thu, 01 Dec 2011 03:33:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>模仿新浪邮箱登陆提示</title>
		<link>http://flex.desizen.com/sina-email-login/</link>
		<comments>http://flex.desizen.com/sina-email-login/#comments</comments>
		<pubDate>Thu, 01 Dec 2011 03:33:47 +0000</pubDate>
		<dc:creator>warmC</dc:creator>
				<category><![CDATA[FLEX]]></category>
		<category><![CDATA[新浪]]></category>
		<category><![CDATA[自动]]></category>
		<category><![CDATA[补全]]></category>
		<category><![CDATA[邮箱]]></category>

		<guid isPermaLink="false">http://flex.desizen.com/?p=330</guid>
		<description><![CDATA[这是新浪微博的登陆，邮箱自动完成功能截图 这是用Flex模仿的截图 废话就不多说了，源码 点这里下载]]></description>
			<content:encoded><![CDATA[<p><strong>这是新浪微博的登陆，邮箱自动完成功能截图</strong></p>
<p><a href="http://flex.desizen.com/wp-content/uploads/2011/12/sinaLogin.jpg"><img src="http://flex.desizen.com/wp-content/uploads/2011/12/sinaLogin.jpg" alt="" title="sinaLogin" width="224" height="360" class="alignnone size-full wp-image-336" /></a></p>
<p><strong>这是用Flex模仿的截图</strong></p>
<p><a href="http://flex.desizen.com/wp-content/uploads/2011/12/FlexLogin.jpg"><img src="http://flex.desizen.com/wp-content/uploads/2011/12/FlexLogin.jpg" alt="" title="FlexLogin" width="221" height="301" class="alignnone size-full wp-image-335" /></a></p>
<p>废话就不多说了，源码 <a href="http://www.box.com/s/fg0zsfyjpt6deng1vsrz" title="" target="_blank">点这里下载</a></p>
]]></content:encoded>
			<wfw:commentRss>http://flex.desizen.com/sina-email-login/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Flex DataGrid 分页 （服务器端分页版）</title>
		<link>http://flex.desizen.com/flex-datagrid-page-services/</link>
		<comments>http://flex.desizen.com/flex-datagrid-page-services/#comments</comments>
		<pubDate>Wed, 09 Sep 2009 13:51:57 +0000</pubDate>
		<dc:creator>warmC</dc:creator>
				<category><![CDATA[FLEX]]></category>
		<category><![CDATA[DataGrid]]></category>
		<category><![CDATA[分页]]></category>

		<guid isPermaLink="false">http://flex.joelove.cn/?p=299</guid>
		<description><![CDATA[之前写过DataGrid的分页控件，但是针对的数据类型是客户端型的，也就是说数据必须全部读取到客户端，对于小型数据类的分页比较适合。想了解的同学可以到这里看看 Flex DataGrid 分页 排序 箭头指示 这一篇主要介绍的是我刚刚整出来的针对服务器端数据分页的控件，表达能力不是很好。就叫DataGrid分页2吧。 老样子，在文章的最后附上了包含源码的一个小Demo。下面讲讲主要思路。 >>> SPageController.mxml 用法类似之前的PageController.mxml 只是因为数据来源未知，所以无法直接赋值数据源； 介绍一下较重要的属性： 1.callBackFunc，用于客户端内存数据不足时进行数据补充通知； 2.AppandData方法用于在接受到数据补充通知后进行数据追加； 因为数据源未知的原因，将无法使用全部数据的排序，而只能对当前显示数据排序（未解）。 另外介绍一下以下属性以及作用： 1.通过useCache可设置是否进行客户端本地缓存数据，通过sharedObject缓存 2.通过Versioning可设置是否进行版本统一控制，需外部传当前版本号 3.通过ClientPages可设置客户端内存中缓存的数据页数，例如每页显示5条数据， 但是ClientPages设置为3的话，其实每次请求的数据时15条，将在客户端内存 缓存多2(3-1)页的数据 源码里面有注释以及解释，自己去看。有疑问的童鞋留言。 Flex DataGrid 分页 （服务器端分页版）]]></description>
			<content:encoded><![CDATA[<p>之前写过DataGrid的分页控件，但是针对的数据类型是客户端型的，也就是说数据必须全部读取到客户端，对于小型数据类的分页比较适合。想了解的同学可以到这里看看<br />
 <a href="http://flex.joelove.cn/flex-datagrid-page-sort-arrow/" target="_blank">Flex DataGrid 分页 排序 箭头指示</a><br />
这一篇主要介绍的是我刚刚整出来的针对服务器端数据分页的控件，表达能力不是很好。就叫DataGrid分页2吧。<br />
老样子，在文章的最后附上了包含源码的一个小Demo。下面讲讲主要思路。<span id="more-299"></span><br />
>>> SPageController.mxml<br />
用法类似之前的<a href="http://flex.joelove.cn/flex-datagrid-page-sort-arrow/" target="_blank">PageController.mxml</a><br />
只是因为数据来源未知，所以无法直接赋值数据源；<br />
介绍一下较重要的属性：<br />
1.callBackFunc，用于客户端内存数据不足时进行数据补充通知；<br />
2.AppandData方法用于在接受到数据补充通知后进行数据追加；<br />
因为数据源未知的原因，将无法使用全部数据的排序，而只能对当前显示数据排序（未解）。<br />
另外介绍一下以下属性以及作用：<br />
1.通过useCache可设置是否进行客户端本地缓存数据，通过sharedObject缓存<br />
2.通过Versioning可设置是否进行版本统一控制，需外部传当前版本号<br />
3.通过ClientPages可设置客户端内存中缓存的数据页数，例如每页显示5条数据，<br />
  但是ClientPages设置为3的话，其实每次请求的数据时15条，将在客户端内存<br />
  缓存多2(3-1)页的数据<br />
源码里面有注释以及解释，自己去看。有疑问的童鞋留言。<br />
<a href="http://www.boxcn.net/shared/61ye4a9m0u" target="_blank">Flex DataGrid 分页 （服务器端分页版）</a></p>
]]></content:encoded>
			<wfw:commentRss>http://flex.desizen.com/flex-datagrid-page-services/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>图文混排 RichTextField 组件</title>
		<link>http://flex.desizen.com/richtextfield/</link>
		<comments>http://flex.desizen.com/richtextfield/#comments</comments>
		<pubDate>Mon, 31 Aug 2009 05:10:28 +0000</pubDate>
		<dc:creator>warmC</dc:creator>
				<category><![CDATA[FLEX]]></category>
		<category><![CDATA[RichTextField]]></category>
		<category><![CDATA[图文混排]]></category>

		<guid isPermaLink="false">http://flex.joelove.cn/?p=291</guid>
		<description><![CDATA[今天在Google code上看到一个很好用的图文混排组件，名字叫做 RichTextField。地址在这里http://code.google.com/p/riaidea/wiki/RichTextField 作者的想法很好。但他所说 “RichTextField是一个实现图文混编的AS3组件，特别适合像QQ那样的聊天组件需要。”。如果要像QQ一样的聊天功能，则需要将前台的内容传送到后台，再由后台服务器端进行传播，传送前必须进行打包，至于将表情如何打包，也有多种做法。 但是我找了半天没找到一个方法，可以将该组件的内容转换成可以进行传输的数据。于是动手修改了一下，将表情转换成特殊字符串，再进行传输，我比较喜欢这种做法，可以让传输的数据变得更小一点。想看原版的就上Google code，需要到转换功能的就下文章最后的Demo。↓ 解释一下，我新加进去的几个方法： 1.添加了converRichToString方法，将RichTextField控件的内容，包括表情，转换成字符串，可供Socket或者其他方式传输。 2.添加了converStringToRich方法，将converRichToString转换成的字符串再转换成能使RichTextField控件识别的对象。 3.重写了set visible方法。我发现如果需要再某个情况下，将RichTextField隐藏起来的话，RichTextField机制里面的表情容器不会隐藏。 顺便说一下，Demo里面只是模拟了一下服务器广播，并没有真正使用到服务器端。为了运行起来更方便。 RichTextField可转换版Demo下载 有童鞋提及到能不能实现类似QQ聊天，自动识别URL转换成超链接。刚好今天有空，我又修改了一下,通过正则表达式判断超类接，再进行转换。 正则可能并不能符合某些特殊要求童鞋的胃口，见机行事咯。 Demo在这里 图文混排 &#8211; 自识别超链接版]]></description>
			<content:encoded><![CDATA[<p>今天在Google code上看到一个很好用的图文混排组件，名字叫做 RichTextField。地址在这里<a href="http://code.google.com/p/riaidea/wiki/RichTextField" target="_blank">http://code.google.com/p/riaidea/wiki/RichTextField</a></p>
<p>作者的想法很好。但他所说 “RichTextField是一个实现图文混编的AS3组件，特别适合像QQ那样的聊天组件需要。”。如果要像QQ一样的聊天功能，则需要将前台的内容传送到后台，再由后台服务器端进行传播，传送前必须进行打包，至于将表情如何打包，也有多种做法。</p>
<p>但是我找了半天没找到一个方法，可以将该组件的内容转换成可以进行传输的数据。于是动手修改了一下，将表情转换成特殊字符串，再进行传输，<span id="more-291"></span>我比较喜欢这种做法，可以让传输的数据变得更小一点。想看原版的就上Google code，需要到转换功能的就下文章最后的Demo。↓ 解释一下，我新加进去的几个方法：</p>
<p>1.添加了converRichToString方法，将RichTextField控件的内容，包括表情，转换成字符串，可供Socket或者其他方式传输。</p>
<p>2.添加了converStringToRich方法，将converRichToString转换成的字符串再转换成能使RichTextField控件识别的对象。</p>
<p>3.重写了set visible方法。我发现如果需要再某个情况下，将RichTextField隐藏起来的话，RichTextField机制里面的表情容器不会隐藏。</p>
<p>顺便说一下，Demo里面只是模拟了一下服务器广播，并没有真正使用到服务器端。为了运行起来更方便。 <img src='http://flex.desizen.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':grin:' class='wp-smiley' /><br />
<a href="http://www.boxcn.net/shared/lmf39tc04f" target="_blank">RichTextField可转换版Demo下载</a></p>
<p><-----------华丽的分割线------------><br />
有童鞋提及到能不能实现类似QQ聊天，自动识别URL转换成超链接。刚好今天有空，我又修改了一下,通过正则表达式判断超类接，再进行转换。<br />
正则可能并不能符合某些特殊要求童鞋的胃口，见机行事咯。<br />
Demo在这里 <a href="http://www.boxcn.net/shared/l3jukv9yn2">图文混排 &#8211; 自识别超链接版</a></p>
]]></content:encoded>
			<wfw:commentRss>http://flex.desizen.com/richtextfield/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>flex 客户端缓存 module swf</title>
		<link>http://flex.desizen.com/flex-client-cache/</link>
		<comments>http://flex.desizen.com/flex-client-cache/#comments</comments>
		<pubDate>Sat, 22 Aug 2009 07:35:25 +0000</pubDate>
		<dc:creator>warmC</dc:creator>
				<category><![CDATA[FLEX]]></category>
		<category><![CDATA[module]]></category>
		<category><![CDATA[swf]]></category>
		<category><![CDATA[缓存]]></category>

		<guid isPermaLink="false">http://flex.joelove.cn/?p=267</guid>
		<description><![CDATA[flex或者flash客户端的缓存，并不是指浏览器的缓存，浏览器的缓存在一定时间后会过期，先作此声明。 使用flex或者flash开发出来的网站最大的问题就是swf文件过大，国内网速有限，导致加载时间过长，这样会丢失很多潜在的客户。 flex使用RSL技术，可以解决框架的缓存与共享，很大程度的解决了加载问题。但是如果项目过大，还是会导致加载时间很长这个问题。我使用了SharedObject进行客户端的SWF与Module的缓存，并进行版本控制。在服务器端做一个配置文件，客户端若有缓存过数据，则进行版本控制，达到客户端数据与服务器端数据保持一样。 例子: 假设现在有个Application的项目，生成的Application.swf文件是2028K，客户端的下载速度是100k/s，则差不多需要使用20秒的时间。现在将Application中的部分源码抽出来，使用Module机制，变成Application.swf 428K，Module1.swf 1000K，Module2.swf 600K。不使用缓存的话，完整的加载完Application还是需要差不多20秒时间，若使用缓存，将Module1.swf与Module2.swf缓存在客户端，则只需要加载Application.swf的428K，差不多4秒时间，加上Moduel的读取2秒时间，最多也就6-7秒时间。效率很明显。而且还可以缓存其他的乱七八糟的东西，例如皮肤.swf，图片资源.swf等等.如果有跳转页面的话，还可以将Application.swf也进行缓存。 问题： 如果遇到客户端不允许缓存，则跳过缓存，无碍程序的加载和运行。 如果一个用户，多次的打开本网站，说明对本网站有了一定的兴趣，在多次被询问是否允许缓存后，点击允许的可能性也加 大。 当用户能够清楚的了解到缓存的好处时，允许缓存，一.可以加速用户体验，二.可以降低服务器压力，三.可以降低服务器带宽的使用。 文章最后有一个Demo供下载测试使用，源代码暂时打包成SWC，未开放出来。 下面将解释一下如何使用WarmC.swc： 配置文件&#8217;Cache_config.xml&#8217; &#60;data id=&#34;moduleOne&#34; version=&#34;beta01&#34;/&#62; &#60;data id=&#34;moduleTwo&#34; version=&#34;beta01&#34;/&#62; &#60;data id=&#34;mySwf&#34; version=&#34;beta01&#34;/&#62; *当然，配置文件的路径，和名字可以由你任取，但需要在版本控制时指定路径，下面将介绍如何启动版本控制 *id属性，标记这个缓存的名字，将会在全局使用，包括缓存的SharedObject名称，以及版本控制,下面读取缓存时将会使用到这个id *version版本控制，随你起名称。但是为了确保不会与以前的版本混淆，推荐最好还是使用递增的版本名称 首先必须在缓存的使用之前先启动版本控制，需要导入以下包： import WarmC.Cache.LocationDataProxy; 然后启动版本控制： LocationDataProxy.getInstance().CacheReBuild(0.5); CacheReBuild(size:int,configUrl:String)方法使用说明: * size参数,指定缓存的总大小，单位为兆（M），不填则默认为1M即运行到这个地方时，就会判断客户端的SharedObject 允许缓存大小，再提示用户修改缓存最大值设置如果你需要缓存的数据较大，则可对应取下面的值 size]]></description>
			<content:encoded><![CDATA[<p>flex或者flash客户端的缓存，并不是指浏览器的缓存，浏览器的缓存在一定时间后会过期，先作此声明。<br />
使用flex或者flash开发出来的网站最大的问题就是swf文件过大，国内网速有限，导致加载时间过长，这样会丢失很多潜在的客户。<br />
flex使用RSL技术，可以解决框架的缓存与共享，很大程度的解决了加载问题。但是如果项目过大，还是会导致加载时间很长这个问题。我使用了SharedObject进行客户端的SWF与Module的缓存，并进行版本控制。在服务器端做一个配置文件，客户端若有缓存过数据，则进行版本控制，达到客户端数据与服务器端数据保持一样。<span id="more-267"></span><br />
例子:<br />
     假设现在有个Application的项目，生成的Application.swf文件是2028K，客户端的下载速度是100k/s，则差不多需要使用20秒的时间。现在将Application中的部分源码抽出来，使用Module机制，变成Application.swf 428K，Module1.swf 1000K，Module2.swf 600K。不使用缓存的话，完整的加载完Application还是需要差不多20秒时间，若使用缓存，将Module1.swf与Module2.swf缓存在客户端，则只需要加载Application.swf的428K，差不多4秒时间，加上Moduel的读取2秒时间，最多也就6-7秒时间。效率很明显。而且还可以缓存其他的乱七八糟的东西，例如皮肤.swf，图片资源.swf等等.如果有跳转页面的话，还可以将Application.swf也进行缓存。<br />
问题：<br />
     如果遇到客户端不允许缓存，则跳过缓存，无碍程序的加载和运行。<br />
     如果一个用户，多次的打开本网站，说明对本网站有了一定的兴趣，在多次被询问是否允许缓存后，点击允许的可能性也加    大。<br />
     当用户能够清楚的了解到缓存的好处时，允许缓存，一.可以加速用户体验，二.可以降低服务器压力，三.可以降低服务器带宽的使用。<br />
文章最后有一个Demo供下载测试使用，源代码暂时打包成SWC，未开放出来。<br />
下面将解释一下如何使用WarmC.swc：<br />
        <strong>配置文件&#8217;Cache_config.xml&#8217;</strong></p>

<div class="wp_syntax"><div class="code"><pre class="mxml" style="font-family:monospace;">        <span style="color: #000000;">&lt;data id=<span style="color: #ff0000;">&quot;moduleOne&quot;</span> version=<span style="color: #ff0000;">&quot;beta01&quot;</span><span style="color: #7400FF;">/&gt;</span></span>
	<span style="color: #000000;">&lt;data id=<span style="color: #ff0000;">&quot;moduleTwo&quot;</span> version=<span style="color: #ff0000;">&quot;beta01&quot;</span><span style="color: #7400FF;">/&gt;</span></span>
	<span style="color: #000000;">&lt;data id=<span style="color: #ff0000;">&quot;mySwf&quot;</span> version=<span style="color: #ff0000;">&quot;beta01&quot;</span><span style="color: #7400FF;">/&gt;</span></span></pre></div></div>

<p>        *当然，配置文件的路径，和名字可以由你任取，但需要在版本控制时指定路径，下面将介绍如何启动版本控制<br />
        *id属性，标记这个缓存的名字，将会在全局使用，包括缓存的SharedObject名称，以及版本控制,下面读取缓存时将会使用到这个id<br />
        *version版本控制，随你起名称。但是为了确保不会与以前的版本混淆，推荐最好还是使用递增的版本名称<br />
	<strong>首先必须在缓存的使用之前先启动版本控制，需要导入以下包：</strong></p>

<div class="wp_syntax"><div class="code"><pre class="mxml" style="font-family:monospace;">import WarmC.Cache.LocationDataProxy;</pre></div></div>

<p>	<strong>然后启动版本控制：</strong></p>

<div class="wp_syntax"><div class="code"><pre class="mxml" style="font-family:monospace;">LocationDataProxy.getInstance().CacheReBuild(0.5);</pre></div></div>

<p>CacheReBuild(size:int,configUrl:String)方法使用说明:<br />
* size参数,指定缓存的总大小，单位为兆（M），不填则默认为1M即运行到这个地方时，就会判断客户端的SharedObject 允许缓存大小，再提示用户修改缓存最大值设置如果你需要缓存的数据较大，则可对应取下面的值<br />
   size<=0 不提示，或者默认客户端的100Kb<br />
   0<size<1 缓存1Mb以内的数据<br />
   1<=size<10 缓存10Mb以内的数据<br />
   10<=size 缓存无限大的数据<br />
   例如：你需要缓存的文件总大小为700K，你可以设置size=0.7,这样子，就会在启动版本控制的是很对用户进行询问，而且保证用户同意缓存以后不会再次询问<br />
* configUrl,是指配置文件XML地址，默认是在根目录'Cache_config.xml'，必须指定，并且配置文件格式必须与Demo格式一致<br />
* 当配置文件正确无误时，版本控制启动成功，会读取服务器端配置，与客户端缓存进行版本比较。版本不同的话，将客户端缓存删除。如果版本控制启动失败，会导致客户端的缓存与服务器端的缓存无法同步。<br />
	<strong>设置缓存人性化功能</strong></p>

<div class="wp_syntax"><div class="code"><pre class="mxml" style="font-family:monospace;">LocationDataProxy.getInstance().Warm_Human(true);</pre></div></div>

<p>         Warm_Human（bool:Boolean）说明:<br />
	* FlashPlayer的SharedObject，在使用超过客户端的设置大小后，就会提示用户，并征求其意见，是否同意网站的缓存<br />
        * 如果，在系统需要缓存多个数据时，而且用户拒绝了缓存，系统将会在每次需要写入SharedObject时，都进行询问是否允许缓存，这样的用户体验十分糟糕。<br />
        *当设置Warm_Huma为true时，在第一次提示用户是否允许程序缓存改大小后，如果用户拒绝了，以后的缓存将不会再提示，也不会再在客户端缓存，直到用户再次运行此程序（ <img src='http://flex.desizen.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':grin:' class='wp-smiley' />  ，虽然是有点烦人，但嫌麻烦，多数人不会在意那几M的空间，而点了允许）<br />
	* false，不管用户是否拒绝，每次需要增大缓存区大小时，都会提示用户<br />
        * 不使用该方法，默认为true。所以这个方法很少用到。<br />
	<strong>确保版本控制启动成功后，可以进行module加载，先导入以下包：</strong></p>

<div class="wp_syntax"><div class="code"><pre class="mxml" style="font-family:monospace;">import WarmC.Cache.ModuleCacheProxy;</pre></div></div>

<p>	<strong>加载module</strong></p>

<div class="wp_syntax"><div class="code"><pre class="mxml" style="font-family:monospace;">ModuleCacheProxy.getInstance().load(&quot;moduleOne&quot;,&quot;ModuleOne.swf&quot;,onProgress,onReady);
function onProgress(bytesLoaded:uint,bytesTotal:uint):void{
	trace(&quot;&gt;加载ModuleOne:&quot;+bytesLoaded+&quot;/&quot;+bytesTotal);
}
function onReady(data:Object):void{
	trace(&quot;&gt;ModuleOne 加载完成!&quot;);
	Application.application.addChild(data as UIComponent);
}</pre></div></div>

<p>        * load(name:String,url:String,onProgress:Function,onReady:Function)说明:<br />
	* name,指的是Module在配置文件Cache_config文件中的ID，此处必须与配置文件一致。用于版本控制，以及<br />
          客户端的缓存文件名，通过name获取SharedObject<br />
	* url,指的是Module的Swf文件路径，Demo的Module文件均在根目录，所以直接指定名称<br />
	* onProgress,指加载Module时的进度回调方法，传回两个参数，bytesLoaded与bytesTotal，若需要显示进度条，则这个方法是必备的。如果缓存不存在，则bytesLoaded与bytesTotal会是从服务器端加载数据的值；<br />
          如果缓存已经存在，则该方法只调用一次，而且两个回传参数均是100<br />
	* onReady,指加载完成后的回调方法，传回一个UIComponent类型的参数data<br />
	* 代理器使用了饿汉单例模式，检测module是否已经缓存在客户端。<br />
	* 如果已经缓存在客户端，则直接读取<br />
	* 否则，从服务器端加载，显示，再缓存到客户端，打上版本。<br />
	<strong>加载SWF（非module），需导入以下包：</strong></p>

<div class="wp_syntax"><div class="code"><pre class="mxml" style="font-family:monospace;">import WarmC.Cache.SwfCacheProxy;</pre></div></div>

<p>        <strong>加载SWF:</strong></p>

<div class="wp_syntax"><div class="code"><pre class="mxml" style="font-family:monospace;">SwfCacheProxy.getInstance().load(&quot;mySwf&quot;,&quot;test.swf&quot;,onProgress,onReady);
function onProgress(bytesLoaded:uint,bytesTotal:uint):void{
	trace(&quot;&gt;加载SWF:&quot;+bytesLoaded+&quot;/&quot;+bytesTotal);
}
function onReady(data:Object):void{
	trace(&quot;&gt;SWF 加载完成!&quot;);
	var load:Loader = new Loader()
	load.loadBytes( data as ByteArray );
	var uic:UIComponent=new UIComponent();
	uic.addChild(load); 
	Application.application.addChild(uic);
}</pre></div></div>

<p>        * load(name:String,url:String,onProgress:Function,onReady:Function)说明:<br />
        *属性作用与ModuleCacheProxy一样<br />
        *唯一不同点，onReady方法的回传参数为一个ByteArray，需要自己进行包装目前使用起来就是这样。你可以使用SwfCacheProxy来缓存皮肤Style.swf，游戏插件，图片资源等等Swf数据。<br />
	<strong>在例子中，有个“加载Module 2”:</strong></p>

<div class="wp_syntax"><div class="code"><pre class="mxml" style="font-family:monospace;">private function loadModule2():void{
	ModuleCacheProxy.getInstance().load(&quot;moduleTwo&quot;,&quot;ModuleTwo.swf&quot;,onProgress,onReady);
	ModuleCacheProxy.getInstance().load(&quot;moduleTwo&quot;,&quot;ModuleTwo.swf&quot;,onProgress,onReady);
	function onProgress(bytesLoaded:uint,bytesTotal:uint):void{
		trace(&quot;&gt;加载ModuleTwo:&quot;+bytesLoaded+&quot;/&quot;+bytesTotal);
	}
	function onReady(data:Object):void{
		trace(&quot;&gt;ModuleTwo 加载完成!&quot;);
        	Application.application.addChild(data as UIComponent);
	}
}</pre></div></div>

<p>细心点，你就会发现，moduleTwo.swf使用ModuleCacheProxy加载了两次。嗯，这是为了演示一下，如果在一个swf还未加载完毕，再将他加载一遍，就会被拒绝。如果你想一次性将一个SWF加载多次（也可以说Copy多个Swf），将会遭到拒绝，你可以一个一个慢慢加载，在onReady方法里面加载。或者根本可以不用使用加载，直接使用复制，如何复制，自己去google啦。<br />
这样可以避免一点，加载缓存时很卡。 <img src='http://flex.desizen.com/wp-includes/images/smilies/icon_cry.gif' alt=':cry:' class='wp-smiley' /><br />
另外，做人得厚道点。别什么东西都往人家C盘上面塞。 <img src='http://flex.desizen.com/wp-includes/images/smilies/icon_evil.gif' alt=':evil:' class='wp-smiley' /><br />
罗嗦了这么多，看Demo吧。<a href="http://www.boxcn.net/shared/ciynrit51i" target="_blank">flex 客户端缓存 module swf</a> 如果发现什么Bug的话，欢迎留言…</p>
]]></content:encoded>
			<wfw:commentRss>http://flex.desizen.com/flex-client-cache/feed/</wfw:commentRss>
		<slash:comments>46</slash:comments>
		</item>
		<item>
		<title>flex可多选的ComboBox</title>
		<link>http://flex.desizen.com/multiple-selection-combobox/</link>
		<comments>http://flex.desizen.com/multiple-selection-combobox/#comments</comments>
		<pubDate>Tue, 18 Aug 2009 09:27:47 +0000</pubDate>
		<dc:creator>warmC</dc:creator>
				<category><![CDATA[FLEX]]></category>
		<category><![CDATA[ComboBox]]></category>
		<category><![CDATA[多选]]></category>

		<guid isPermaLink="false">http://flex.joelove.cn/?p=259</guid>
		<description><![CDATA[今天在一Flex群上看到有童鞋需要用到可多选的ComboBox，而且内嵌CheckBox。 下午有空动了动手，做了以下的一个插件(文章最后又下载地址)。 WarmC:MyComboBox,继承自ComboBox,所以用法差不多。如果使用XML数据源的话，得自己手动进行修改。 重写了prompt的set方法，因为自带的prompt set方法会导致dropdown的MouseEvent.ROLL_OUT与MouseEvent.ROLL_OVER监听丢失，可能是因为dropdown被重新构造了的原因。 支持直接在数据源里面指定CheckBox的selected与enabled属性，这两个属性比较常用。下面的Demo里面有详细的内容。 Demo: flex可多选的ComboBox 下载地址1 flex可多选的ComboBox 下载地址2 有问题或者更好的解决办法的请不吝留言。呵呵。]]></description>
			<content:encoded><![CDATA[<p>今天在一Flex群上看到有童鞋需要用到可多选的ComboBox，而且内嵌CheckBox。<br />
下午有空动了动手，做了以下的一个插件(文章最后又下载地址)。</p>
<p>WarmC:MyComboBox,继承自ComboBox,所以用法差不多。如果使用XML数据源的话，得自己手动进行修改。</p>
<p>重写了prompt的set方法，因为自带的prompt set方法会导致dropdown的MouseEvent.ROLL_OUT与MouseEvent.ROLL_OVER监听丢失，可能是因为dropdown被重新构造了的原因。 <img src='http://flex.desizen.com/wp-includes/images/smilies/icon_exclaim.gif' alt=':!:' class='wp-smiley' /> </p>
<p>支持直接在数据源里面指定CheckBox的selected与enabled属性，这两个属性比较常用。下面的Demo里面有详细的内容。</p>
<p><span style="color: #ff0000;">Demo</span>:<span id="more-259"></span> <a href="http://www.damipan.com/file/35cvL1r.html" target="_blank">flex可多选的ComboBox 下载地址1</a><br />
<a href="http://www.boxcn.net/shared/l5cyum7ne1" target="_blank">flex可多选的ComboBox 下载地址2</a><br />
有问题或者更好的解决办法的请不吝留言。呵呵。</p>
]]></content:encoded>
			<wfw:commentRss>http://flex.desizen.com/multiple-selection-combobox/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Flex 图文混排</title>
		<link>http://flex.desizen.com/flex-pic-text-mixed/</link>
		<comments>http://flex.desizen.com/flex-pic-text-mixed/#comments</comments>
		<pubDate>Fri, 17 Jul 2009 13:07:10 +0000</pubDate>
		<dc:creator>warmC</dc:creator>
				<category><![CDATA[FLEX]]></category>
		<category><![CDATA[图文混排]]></category>
		<category><![CDATA[自适应]]></category>

		<guid isPermaLink="false">http://flex.joelove.cn/?p=207</guid>
		<description><![CDATA[Flex的图文混排应用确实困扰了很多人，特别是像我这种，项目建立在了Flex SDK3的基础上，又要实现图文混排功能的人（“悲剧” 引用一下我可爱的同事的口头禅）。 在网上搜索了很久，有人用SDK3实现了图文混排功能（而且也是开源的， ，支持！）。但是细看了一下他的源码。觉得不是很爽。 （PS：本观点只代表作者个人看法，与 FlexHome 无关。）至于不爽的原因是，我看到的那个实现图文混排的仁兄，使用的是自适应HBox与VBox嵌套，如果出现大量内容的图文混排，效率不敢想象。因为本身这种容器的嵌套就会影响程序的效率，再加上‘大量’两个字的话… 像下面这种代码，千万千万千万别出现： &#60;mx:Panel&#62; &#60;mx:VBox&#62; &#60;mx:HBox&#62; &#60;mx:Label text=&#34;Label 1&#34; /&#62; &#60;mx:VBox&#62; &#60;mx:Label text=&#34;Label 2&#34; /&#62; &#60;/mx:VBox&#62; &#60;mx:HBox&#62; &#60;mx:Label text=&#34;Label 3&#34; /&#62; &#60;mx:VBox&#62; &#60;mx:Label text=&#34;Label 4&#34; /&#62; &#60;/mx:VBox&#62; &#60;/mx:HBox&#62; &#60;/mx:HBox&#62; &#60;/mx:VBox&#62; &#60;/mx:Panel&#62; 嗯嗯，以上说道的仁兄，别生气，我的这个应用可能也不会好到哪去，说是说图文混排，其实叫自适应控件比较合适点，但是里面没有出现一个HBox或者VBox，目前父层是使用Canvas，字符串是用Text显示，图片用Image，可自己进行扩展！我的项目里面就有MC替代了Image，欢迎批斗… 文章最尾附带了一个Demo，Demo里面实现了图文混排，至于分辨字符和图片的关键字，Demo里面写死了以\src=图片\进行表示，大家可以根据自己需要，将这部分再进行细分，做成属性也行，接口也罢，爱咋弄就咋弄,例如做成 &#60;img src='图片'/&#62; 哇靠，就是HTML代码啦! 下面简单说下原理：传一串字符进入MyCanvasArea控件，MyCanvasArea进行分类，分成字符串和图片，保存成数组，再按照顺序进行加载，当遇到某个字符串的长度，比当前行可以显示的长度还长的时候，进行字符串折断，再保存到数组，再显示！当垂直滚动条被拖动到最下面时，每次更新完MyCanvasArea里面的内容，将会自动滚动到最下面，如果滚动条不是处于最下面时，视为用户正在阅读信息，不进行自动滚动。当然，通过不断添加子控件，是一种较蠢的方法，但是被逼上梁山的人，没法子。所以在控制用户输入的时候，最好做一下控制，别让他一次性输入太多东西，服务器压力大，客户端也受不了！另外，里面的MyCanvasArea.cleanAll()方法用于清空全部内容，逐行清除功能还在扩展中 这里是源码： Flex 图文混排 下载地址1 Flex 图文混排 下载地址2 最近大米盘老是傻傻的，如果下载不了的话，留个言！ 欢迎交流。]]></description>
			<content:encoded><![CDATA[<p>Flex的图文混排应用确实困扰了很多人，特别是像我这种，项目建立在了Flex SDK3的基础上，又要实现图文混排功能的人（“悲剧” 引用一下我可爱的同事的口头禅）。<br />
在网上搜索了很久，有人用SDK3实现了图文混排功能（而且也是开源的， <img src='http://flex.desizen.com/wp-includes/images/smilies/icon_rolleyes.gif' alt=':roll:' class='wp-smiley' />  ，支持！）。但是细看了一下他的源码。觉得不是很爽。<span id="more-207"></span><br />
（PS：本观点只代表作者个人看法，与 <a href="http://flex.joelove.cn/" class="kblinker" title="More about flexhome &raquo;">FlexHome</a> 无关。）至于不爽的原因是，我看到的那个实现图文混排的仁兄，使用的是自适应HBox与VBox嵌套，如果出现大量内容的图文混排，效率不敢想象。因为本身这种容器的嵌套就会影响程序的效率，再加上‘大量’两个字的话… <img src='http://flex.desizen.com/wp-includes/images/smilies/icon_evil.gif' alt=':evil:' class='wp-smiley' />  像下面这种代码，千万千万千万别出现：</p>

<div class="wp_syntax"><div class="code"><pre class="mxml" style="font-family:monospace;"><span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:Panel</span><span style="color: #7400FF;">&gt;</span></span> 
    <span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:VBox</span><span style="color: #7400FF;">&gt;</span></span> 
        <span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:HBox</span><span style="color: #7400FF;">&gt;</span></span> 
            <span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:Label</span> text=<span style="color: #ff0000;">&quot;Label 1&quot;</span> <span style="color: #7400FF;">/&gt;</span></span> 
             <span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:VBox</span><span style="color: #7400FF;">&gt;</span></span> 
                  <span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:Label</span> text=<span style="color: #ff0000;">&quot;Label 2&quot;</span> <span style="color: #7400FF;">/&gt;</span></span>  
              <span style="color: #000000;"><span style="color: #7400FF;">&lt;/mx:VBox</span><span style="color: #7400FF;">&gt;</span></span> 
              <span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:HBox</span><span style="color: #7400FF;">&gt;</span></span> 
                  <span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:Label</span> text=<span style="color: #ff0000;">&quot;Label 3&quot;</span> <span style="color: #7400FF;">/&gt;</span></span> 
                  <span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:VBox</span><span style="color: #7400FF;">&gt;</span></span> 
                      <span style="color: #000000;"><span style="color: #7400FF;">&lt;mx:Label</span> text=<span style="color: #ff0000;">&quot;Label 4&quot;</span> <span style="color: #7400FF;">/&gt;</span></span> 
                  <span style="color: #000000;"><span style="color: #7400FF;">&lt;/mx:VBox</span><span style="color: #7400FF;">&gt;</span></span> 
              <span style="color: #000000;"><span style="color: #7400FF;">&lt;/mx:HBox</span><span style="color: #7400FF;">&gt;</span></span> 
          <span style="color: #000000;"><span style="color: #7400FF;">&lt;/mx:HBox</span><span style="color: #7400FF;">&gt;</span></span> 
      <span style="color: #000000;"><span style="color: #7400FF;">&lt;/mx:VBox</span><span style="color: #7400FF;">&gt;</span></span> 
<span style="color: #000000;"><span style="color: #7400FF;">&lt;/mx:Panel</span><span style="color: #7400FF;">&gt;</span></span></pre></div></div>

<p>嗯嗯，以上说道的仁兄，别生气，我的这个应用可能也不会好到哪去，说是说图文混排，其实叫自适应控件比较合适点，但是里面没有出现一个HBox或者VBox，目前父层是使用Canvas，字符串是用Text显示，图片用Image，可自己进行扩展！我的项目里面就有MC替代了Image，欢迎批斗…<br />
文章最尾附带了一个Demo，Demo里面实现了图文混排，至于分辨字符和图片的关键字，Demo里面写死了以\src=图片\进行表示，大家可以根据自己需要，将这部分再进行细分，做成属性也行，接口也罢，爱咋弄就咋弄,例如做成</p>

<div class="wp_syntax"><div class="code"><pre class="mxml" style="font-family:monospace;"> <span style="color: #000000;">&lt;img src=<span style="color: #ff0000;">'图片'</span><span style="color: #7400FF;">/&gt;</span></span></pre></div></div>

<p> 哇靠，就是HTML代码啦! <img src='http://flex.desizen.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':grin:' class='wp-smiley' /><br />
下面简单说下原理：传一串字符进入MyCanvasArea控件，MyCanvasArea进行分类，分成字符串和图片，保存成数组，再按照顺序进行加载，当遇到某个字符串的长度，比当前行可以显示的长度还长的时候，进行字符串折断，再保存到数组，再显示！当垂直滚动条被拖动到最下面时，每次更新完MyCanvasArea里面的内容，将会自动滚动到最下面，如果滚动条不是处于最下面时，视为用户正在阅读信息，不进行自动滚动。当然，通过不断添加子控件，是一种较蠢的方法，但是被逼上梁山的人，没法子。所以在控制用户输入的时候，最好做一下控制，别让他一次性输入太多东西，服务器压力大，客户端也受不了！另外，里面的MyCanvasArea.cleanAll()方法用于清空全部内容，逐行清除功能还在扩展中 <img src='http://flex.desizen.com/wp-includes/images/smilies/icon_arrow.gif' alt=':arrow:' class='wp-smiley' /><br />
这里是源码：<br />
<a href="http://www.damipan.com/file/2chkgEI.html" target="_blank">Flex 图文混排 下载地址1</a><br />
<a href="http://www.boxcn.net/shared/igy1e6ra4v" target="_blank">Flex 图文混排 下载地址2</a><br />
最近大米盘老是傻傻的，如果下载不了的话，留个言！<br />
欢迎交流。</p>
]]></content:encoded>
			<wfw:commentRss>http://flex.desizen.com/flex-pic-text-mixed/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Flex DataGrid 分页 排序 箭头指示</title>
		<link>http://flex.desizen.com/flex-datagrid-page-sort-arrow/</link>
		<comments>http://flex.desizen.com/flex-datagrid-page-sort-arrow/#comments</comments>
		<pubDate>Mon, 06 Jul 2009 04:30:17 +0000</pubDate>
		<dc:creator>warmC</dc:creator>
				<category><![CDATA[FLEX]]></category>
		<category><![CDATA[DataGrid]]></category>
		<category><![CDATA[分页]]></category>
		<category><![CDATA[排序]]></category>

		<guid isPermaLink="false">http://flex.joelove.cn/?p=182</guid>
		<description><![CDATA[flex datagrid 分页，这次更新了一下，会显示排序时的箭头。 详情可以查看这里 Flex DataGrid 分页 带排序功能 Flex DataGrid 分页 这里是新的源码Pagination_Sort01.rar下载地址1 下载地址2 这里是thegod通过修改Pagination后提供的源码（thegod 本人同意在此公开源码）Pagination_sortAndADG.rar下载地址1 下载地址2，里面包含了针对AdvancedDataGrid的分页以及排序，而且支持多列排序，集体过来围观、表扬一下！ 我正在整合，稍后弄上来，希望能做成DataGridBase和AdvancedDataGridBase通用的。哇，Pagination越来越强大了！ 整合了的Pagination，DataGrid以及AdvancedDataGrid，通用，源码在这里 Flex DataGrid分页 Demo 下载地址1 下载地址2]]></description>
			<content:encoded><![CDATA[<p>flex datagrid 分页，这次更新了一下，会显示排序时的箭头。<br />
详情可以查看这里<br />
<a href="http://flex.joelove.cn/flex-datagrid-page-sort/">Flex DataGrid 分页 带排序功能</a><br />
<a href="http://flex.joelove.cn/flex-datagrid-page/">Flex DataGrid 分页</a><br />
这里是新的源码Pagination_Sort01.rar<a href="http://www.damipan.com/file/2PFsHos.html" target="_blank">下载地址1</a>  <a href="http://www.boxcn.net/shared/5cgunbppv7" target="_blank">下载地址2</a><br />
这里是thegod通过修改Pagination后提供的源码（thegod 本人同意在此公开源码）Pagination_sortAndADG.rar<a href="http://www.damipan.com/file/2PeNgHP.html" target="_blank">下载地址1</a>  <a href="http://www.boxcn.net/shared/4se5kgngpz" target="_blank">下载地址2</a>，里面包含了针对AdvancedDataGrid的分页以及排序，而且支持多列排序，集体过来围观、表扬一下！ <img src='http://flex.desizen.com/wp-includes/images/smilies/icon_rolleyes.gif' alt=':roll:' class='wp-smiley' /><br />
我正在整合，稍后弄上来，希望能做成DataGridBase和AdvancedDataGridBase通用的。哇，Pagination越来越强大了！</p>
<p>整合了的Pagination，DataGrid以及AdvancedDataGrid，通用，源码在这里 Flex DataGrid分页 Demo<br />
<a href="http://www.damipan.com/file/2PfsZQN.html" target="_blank">下载地址1</a>  <a href="http://www.boxcn.net/shared/xszlzzz5t4" target="_blank">下载地址2</a></p>
]]></content:encoded>
			<wfw:commentRss>http://flex.desizen.com/flex-datagrid-page-sort-arrow/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Flex DataGrid 分页 带排序功能</title>
		<link>http://flex.desizen.com/flex-datagrid-page-sort/</link>
		<comments>http://flex.desizen.com/flex-datagrid-page-sort/#comments</comments>
		<pubDate>Wed, 01 Jul 2009 07:13:28 +0000</pubDate>
		<dc:creator>warmC</dc:creator>
				<category><![CDATA[FLEX]]></category>
		<category><![CDATA[DataGrid]]></category>
		<category><![CDATA[分页]]></category>
		<category><![CDATA[排序]]></category>

		<guid isPermaLink="false">http://flex.joelove.cn/?p=167</guid>
		<description><![CDATA[之前写过一篇关于DataGrid 分页的文章:Flex DataGrid 分页，有个同学提及到需要带排序功能，之前没加排序功能是因为考虑到数据量过大时，排序可能会很耗资源，在这里各位自己权重一下，因为这个分页功能是数据本地化之后的进行控制的。目前排序功能的实现只是针对数字的排序，如果对非数字排序的话，可能会出现乱序情况。大家可以对以下代码进行适当的修改 private var sort:Sort=new Sort(); private var descending:Boolean=false; private function sortDataSourceItem(target:Object):void{ descending=!descending; sort.fields=[new SortField(target.toString(),true,descending,true)]; _dataProvider.sort=sort; _dataProvider.refresh(); RefershData(); } 这里附带了一个demo，源码在这里Pagination_Sort.rar下载地址1 下载地址2]]></description>
			<content:encoded><![CDATA[<p>之前写过一篇关于DataGrid 分页的文章:<a href="http://flex.joelove.cn/flex-datagrid-page/" target='blank'>Flex DataGrid 分页</a>，有个同学提及到需要带排序功能，之前没加排序功能是因为考虑到数据量过大时，排序可能会很耗资源，在这里各位自己权重一下，因为这个分页功能是数据本地化之后的进行控制的。目前排序功能的实现只是针对数字的排序，如果对非数字排序的话，可能会出现乱序情况。大家可以对以下代码进行适当的修改</p>

<div class="wp_syntax"><div class="code"><pre class="mxml" style="font-family:monospace;">private var sort:Sort=new Sort();
private var descending:Boolean=false;
private function sortDataSourceItem(target:Object):void{
	descending=!descending;
sort.fields=[new SortField(target.toString(),true,descending,true)];
_dataProvider.sort=sort;
_dataProvider.refresh();
RefershData();
}</pre></div></div>

<p>这里附带了一个demo，源码在这里Pagination_Sort.rar<a href="http://www.damipan.com/file/2IpOBhB.html" target="_blank">下载地址1</a>  <a href="http://www.boxcn.net/shared/6ik88mus4a" target="_blank">下载地址2</a></p>
]]></content:encoded>
			<wfw:commentRss>http://flex.desizen.com/flex-datagrid-page-sort/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Flex 只允许运行单个应用程序的实现</title>
		<link>http://flex.desizen.com/flex-only-one-application/</link>
		<comments>http://flex.desizen.com/flex-only-one-application/#comments</comments>
		<pubDate>Mon, 29 Jun 2009 07:21:50 +0000</pubDate>
		<dc:creator>warmC</dc:creator>
				<category><![CDATA[FLEX]]></category>
		<category><![CDATA[单个]]></category>
		<category><![CDATA[应用程序]]></category>

		<guid isPermaLink="false">http://flex.joelove.cn/?p=154</guid>
		<description><![CDATA[不知你是否见到过只允许运行一个应用程序的网站，就像是某些CS程序那样子，反正我是没见到过。不过手头的项目就是要这种形式，因为说得好听点，就是防止犯罪，其实就是为了减轻服务器的负担！不管原因是什么，我的宗旨就是，你想得到的，我就帮你实现它！想了很久，最后用LocalConnection来实现，有点像是在钻牛角尖…… 原理是这样子的，LocalConnection检测到有活动的另外一个swf在运行，就停止运行，当然，如果你的逻辑线比较清楚，可以直接就把线程截断，最终是使用网上找到的一段js代码，关闭浏览器页面，IE，Maxthon，通过，Firefox，chrome，能检测到，也能停止进程，但是无法关闭窗口，浏览器安全问题；如果检查不到的话，就connect自己，等待别人来检查，线程继续进行！ 代码在这里下载地址1 下载地址2 还是那句话，有更好的解决方法，记得告诉我一声！]]></description>
			<content:encoded><![CDATA[<p>不知你是否见到过只允许运行一个应用程序的网站，就像是某些CS程序那样子，反正我是没见到过。不过手头的项目就是要这种形式，因为说得好听点，就是防止犯罪，其实就是为了减轻服务器的负担！不管原因是什么，我的宗旨就是，你想得到的，我就帮你实现它！想了很久，最后用LocalConnection来实现，有点像是在钻牛角尖……<br />
原理是这样子的，LocalConnection检测到有活动的另外一个swf在运行，就停止运行，当然，如果你的逻辑线比较清楚，可以直接就把线程截断，最终是使用网上找到的一段js代码，关闭浏览器页面，IE，Maxthon，通过，Firefox，chrome，能检测到，也能停止进程，但是无法关闭窗口，浏览器安全问题；如果检查不到的话，就connect自己，等待别人来检查，线程继续进行！<br />
代码在这里<a href="http://www.damipan.com/file/2Fkoh27.html" target="_blank">下载地址1</a>  <a href="http://www.boxcn.net/shared/achl3h7kzs" target="_blank">下载地址2</a><br />
还是那句话，有更好的解决方法，记得告诉我一声！ <img src='http://flex.desizen.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':grin:' class='wp-smiley' />  </p>
]]></content:encoded>
			<wfw:commentRss>http://flex.desizen.com/flex-only-one-application/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>flex Loader 加载图片 IOError异常</title>
		<link>http://flex.desizen.com/flex-loader-ioerror/</link>
		<comments>http://flex.desizen.com/flex-loader-ioerror/#comments</comments>
		<pubDate>Thu, 25 Jun 2009 06:55:16 +0000</pubDate>
		<dc:creator>warmC</dc:creator>
				<category><![CDATA[FLEX]]></category>
		<category><![CDATA[IOError]]></category>
		<category><![CDATA[loader]]></category>

		<guid isPermaLink="false">http://flex.joelove.cn/?p=123</guid>
		<description><![CDATA[flex loader 加载图片确实是个好东西，安全，实用！打下广告先…… 最近手头上的项目界面上涉及大量图片，直接编译进Flash文件，会影响加载速度(地球人都知道)，动态加载的话，出现了界面出来后，图片还在加载的情况。所以搞了一个图片缓存工具（等那天心情好了，或者找到女朋友了再弄出来分享分享）。 开心ing，突然传来噩耗，有个同事发现，在遨游浏览器下，竟然无法显示部分图片，而且弹出了未捕获的IOErrorEvent错误，这个问题让我惊讶、奇怪了很久，其他浏览器没问题，IO地址肯定是没错的，郁闷！ 最终鉴定是浏览器问题，一番努力后发现是图片地址的问题，遨游有个广告猎手功能，会帮用户拦截广告图片，广告弹窗等等，我的图片地址里面包含了&#8217;AD&#8217;,这个敏感词汇，loader直接被拦截了，导致FlashPlayer触发了IOErrorEvent。改浏览器设置是欠妥的，只要改变一下图片地址即可。不难让我联想到近期的绿爸爸事件，24口交换机事件，阿门！]]></description>
			<content:encoded><![CDATA[<p>flex loader 加载图片确实是个好东西，安全，实用！打下广告先……<br />
最近手头上的项目界面上涉及大量图片，直接编译进Flash文件，会影响加载速度(地球人都知道)，动态加载的话，出现了界面出来后，图片还在加载的情况。所以搞了一个图片缓存工具（等那天心情好了，或者找到女朋友了再弄出来分享分享）。<br />
开心ing，突然传来噩耗，有个同事发现，在遨游浏览器下，竟然无法显示部分图片，而且弹出了未捕获的IOErrorEvent错误，这个问题让我惊讶、奇怪了很久，其他浏览器没问题，IO地址肯定是没错的，郁闷！<span id="more-123"></span><br />
最终鉴定是浏览器问题，一番努力后发现是图片地址的问题，遨游有个广告猎手功能，会帮用户拦截广告图片，广告弹窗等等，我的图片地址里面包含了&#8217;AD&#8217;,这个敏感词汇，loader直接被拦截了，导致FlashPlayer触发了IOErrorEvent。改浏览器设置是欠妥的，只要改变一下图片地址即可。不难让我联想到近期的绿爸爸事件，24口交换机事件，阿门！</p>
]]></content:encoded>
			<wfw:commentRss>http://flex.desizen.com/flex-loader-ioerror/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

