<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xsl" href="css/rss.xslt"?><rss version="2.0"><channel><title>LuoYe Home</title><link>http://www.luoye.org</link><description>LuoYe Blog(luoye521@gmail.com)</description><language>zh-cn</language><pubDate>Wed, 02 Sep 2009 11:31:16 +0000</pubDate><generator>LuoYe</generator><copyright>Copyright www.luoye.org</copyright><item><title>博客更换地址了</title><author>LuoYe</author><link>http://www.luoye.org/html/read_98.html</link><pubDate>Tue, 01 Sep 2009 16:00:00 +0000</pubDate><description><![CDATA[博客更换地址了]]></description><category>新闻动态</category><comments>http://www.luoye.org/html/read_98.html</comments></item><item><title>提高网站可用性的10个实用技巧</title><author>LuoYe</author><link>http://www.luoye.org/html/read_95.html</link><pubDate>Sun, 16 Aug 2009 16:00:00 +0000</pubDate><description><![CDATA[<p> 不论是企业网站、个人博客,或者购物网站、游戏网站,我们都希望能吸引访问者并且给他们留下愉快的访问体验.</p><p>    可用性是用户体验的一种度量,它可以用访问者完成网站功能的方便程度来描述--无论是通过自身知识还是通过学习新方式来完成这种功能.我认为Jakob   Nielson的解释非常到位,他说:</p><p>    可用性是评估网站易用程度的一种属性.同时&quot;可用性&quot;这个词也指在设计过程中提高易用性的方法.</p><p>    在本文中我希望能够提供一个可用性清单,内容覆盖了从视觉设计,到可以用在任何项目中的简单导航提示等多个方面.</p><p>    <strong>1.   当前位置导航</strong></p><p>      要让用户在任何时候都知道自己身处哪个模块,或者在浏览那个分类.对任何网站来说,这都可以极大提升可用性.在这一点上,创建当前位置导航可以算是最有效的提升可用性方式.</p><p>    当前位置导航的理想方式是在服务端创建,这样可以大量节省HTML和CSS代码.如果不方便在服务端创建导航,那么使用CSS操纵你的body元素   从而直接定义每个导航标签也是一个不错的方法.</p><p>    另外,你可以方便的 使用JavaScript创建当前位置导航菜单.</p><p>    要注意,你的当前位置导航最好和鼠标滑过样式保持不同,这是很多网站缩不注意的.</p><p><img height="125" alt="luoye" src="http://img.ucdchina.com/upload/snap/2009-06/e110ff69d4158da954232063c6e0f6d7.jpeg" width="398" align="absmiddle" /></p><p>  <strong>  2. 可用的表单标签和按钮</strong></p><p>      使用HTML的label属性,可以让用户通过点击注释标签来激活表单元素,这是HTML的一个伟大的内置功能,但不幸的是,很少有用户知道这回事.</p><p>    怎样让用户了解这个功能呢?你可以通过改变鼠标指针形状的方式来提醒用户,这只需要一两行代码就可以实现.</p><p><img height="130" alt="luoye" src="http://img.ucdchina.com/upload/snap/2009-06/1d2f11f415fa86b811ff33314d26bde6.jpeg" width="398" /></p><p>      做成这样之后,用户就很容易的知道这标签是可以点的,我经常觉得HTML标准里没有把这些可以点的元素统一设置为小手指针是非常不应该的,所以我通常我会这样统一定义:</p><p>    label, button, input[type=&quot;submit&quot;]{cursor:pointer;}</p><p> </p><p>    <strong>3. 将你的LOGO链接到首页</strong></p><p>    我认为logo不链接到你的网站首页是一件令人沮丧的事情,恰恰有很多网站没有这样做.用户研究表明,这样做是很有必要的,用户需要它!</p><p>    如今越来越多的网站意识到,给LOGO加链接的重要性.用户已不满足于一个标记为&quot;主页&quot;的文字链接,用户希望点一下logo就可以回到首页.</p><p>    拿Facebook为例,它为每一个导航元素增加了&quot;ref&quot;属性来跟踪用户点击.如下图:</p><p><img height="99" alt="luoye" src="http://img.ucdchina.com/upload/snap/2009-06/947e47d147f1befc29ad69d6e77af882.jpeg" width="318" /></p><p><strong>    4. 加大链接的点击面积</strong></p><p>    大约一年前,37Signals 的 Ryan Singer 写了一篇文章来介绍它们在 Basecamp 项目中如何增大链接的可点击面积   .这又是一个提升网站可用性的小细节,它只需要你增加链接周围的 padding 值就可以有效增大点击面积.</p><p>      对任何网站来说这都是一个值得尝试的方法,它可以方式用户误点或点不到链接.并且对于手机网页的设计更为重要,因为很多用户使用手指来点击触摸屏上的链接,增大面积可以帮他们更方便的浏览网页.</p><p><img height="238" alt="luoye" src="http://img.ucdchina.com/upload/snap/2009-06/b88a0b8e25cbcc8f3e149cee00b60477.jpeg" width="358" /></p><p><strong>    5. 表单元素焦点显示</strong></p><p>      为处于激活状态的表单元素添加焦点显示,越来越成为UI设计的一种趋势.它让用户了解自己做了什么,在做什么.这是一种简单但有效的向用户传递有用细节信息的方式.</p><p><img height="118" alt="luoye" src="http://img.ucdchina.com/upload/snap/2009-06/e0f84a43fcda092fd8f7c44724438d13.jpeg" width="398" /></p><p><strong>    6. 提供有用的404错误页面</strong></p><p>    让网站呈现给用户一个大大的 Apache   错误信息会让人很不爽,创建一个友好的、有用的404错误页面是一个不错的解决方法.因为对非开发者来说,&quot;404&quot;这些数字没有任何意义和价值,用户只希望在网站上找到自己需要的信息.</p><p>      要建立一种可以帮助用户正确的找到他们需要的信息的错误提示页面,比如显示一些抱歉的同时,加上搜索框、推荐文章或首页链接等,努力把用户留在网站上,而不要把责任都推给用户输入了错误链接.</p><p>    这里有一些优秀的404页面欣赏:  极富创意的404错误页面欣赏</p><p><img alt="luoye" src="http://img.ucdchina.com/upload/snap/2009-06/a2a3e59463c19b0abcf2e44dd6d7c014.jpeg" /></p><p><strong>    7. 创造一个舒适的文字环境</strong></p><p>    如今,网站文案撰写已成为了一个很大的话题,做网站有越来越多的细节需要考虑.</p><p>    从古到今,关于网站文字内容的讨论从未间断并且其标准在一直变化.当年Steve Krug   曾主张缩减掉一半的文字内容,转而用列表的形式呈现它们.</p><p>      但现在不同了,我们需要用和朋友对话的方式来撰写文案,让用户感觉到一种舒适温馨的氛围.这样用户就会少一些局促感,即使他们遇到了使用上的问题,他也会心情愉悦的在网站帮助中寻找解决的办法.</p><p><img height="170" alt="luoye" src="http://img.ucdchina.com/upload/snap/2009-06/6c1d130f16d822ff9af3758547ccd7a5.jpeg" width="350" /></p><p>   <strong> 8. 调整行距增强可读性</strong></p><p>      行距是可以从书报杂志等传统媒体直接过度到网页上的元素之一,这些内容的研究和改进已经进行了数百年,已经积累了大量优秀的经验.所以你下次设计之前,大可以先翻翻杂志找找灵感.</p><p>    行距是网页设计中经常被忽视或滥用的地方,我通常从1.4倍行距出发开始设计,然后根据设计和内容进行调整.</p><p><img height="187" alt="luoye" src="http://img.ucdchina.com/upload/snap/2009-06/498ea73b055451ef0b7ddf3ac7e303dc.jpeg" width="308" /></p><p><strong>    9. 使用空白来区分和归类元素</strong></p><p>      将内容元素归类组合是显示内容的一种方式.你可以使用图片、边框或者仅仅是使用空白来归类区分.使用空白归类内容元素可以创造自然和谐的用户体验,即使是匆匆的一瞥,内容也会一目了然.</p><p>      用户一眼扫过网页(比如阅读TOP10列表时),首先会注意标题.我们首先希望的是,我们的网站内容很有趣,能吸引用户进一步阅读.但是对用户进行正确的引导,会对内容的展示起到促进和相得益彰的作用.</p><p><img alt="luoye" src="http://img.ucdchina.com/upload/snap/2009-06/a639f6417487219903b3b2cbd80047ff.jpeg" /></p><p> <strong>   10. 无障碍浏览</strong></p><p>    这里并不是指&quot;508法案&quot; ( 即section   508,美国法律,大体上描述为:某些特殊用户群体,如残疾人,浏览某网站时,如果无法正常获得所期望的信息,那可以依据相关法规,对该网站依法起诉. )    这里所说的&quot;无障碍&quot;,指的是为你的用户考虑到方方面面,让他们轻松的找到需要的东西.</p><p>    如果说保证浏览无障碍可以让你的用户不会发怒,不会甩袖子走人,那么&quot;快速响应&quot;则是你留住用户的最后一道防线.</p><p>      如果有决心的话,你可以做所有你能想到的测试,然后多方参考用户的试用意见.目的就是最大限度的留住用户,因为用户个体的意识和习惯之间存在差异,很难找到让所有用户满意的方式.</p><p>      谈到&quot;无障碍浏览&quot;和&quot;快速响应&quot;,你可能会首先想到视觉障碍人士,但其含义远远超过这些.例如,你必须让你的网站适应用户的带宽限制(拨号上网,手机上网,网速慢等)和旧版本的浏览器(一些公司不会让员工升级浏览器)   .</p><p>    如果我们尽最大努力的消除网站使用的障碍,并且快速的相应网站的问题,我们就能建立一个完善的用户体验,给用户留下良好的印象并且还会再次回来.</p>]]></description><category>新闻动态</category><comments>http://www.luoye.org/html/read_95.html</comments></item><item><title>向Gmail学什么？</title><author>LuoYe</author><link>http://www.luoye.org/html/read_92.html</link><pubDate>Sun, 16 Aug 2009 16:00:00 +0000</pubDate><description><![CDATA[<p>Gmail,我心目中最伟大的互联网应用,一个访问量超Youtube的单一产品站点,一个重新定义Email这个单词的产品.<br />      我们能够从Gmail的成功中学习到什么?它就像一部红楼梦,&quot;经学家看见《易》,道学家看见淫,才子看见缠绵,革命家看见排满,流言家看见宫闱秘事&quot;.太玄了?往下看!<br />      1.与众不同的发布<br />      2004年4月1日,Google宣布推出Gmail,愚人节发布新产品,媒体不相信,用户也不信,大家都把它当作一个笑话.可是要记住,什么东西传播最快?谣言!即使每个人都不相信,也会把这条消息四处散播.从一开始,它就这样被快速的传播开来.<br />      2.4M与1G<br />      2004年的时候,yahoo和hotmail等大多数邮件服务商提供的都是4M空间,国内还有263已经开始对邮箱收费了.Gmail宣布推出1G的容量彻底把人们全部雷翻了.每一款伟大的产品的诞生总是可以给人以雷翻的感觉,又如iPhone.革命性的产品不是比对手强了一星半点,是彻底把对手击倒在地.<br />      再踏上一只脚……<br />    3.谁能给我个Gmail邀请?<br />      愚人节的推出和1G的容量足够吸引人了,可是偏偏让人心痒痒的是它还不开放注册,只能依靠邀请去注册,(在这之前有这种邀请制注册吗?Gmail是不是首创?).于是就出现了专门寻找邀请的站点,也出现了在ebay上一封邀请信被拍卖到近千美元的局面.成功的产品在初期总是不断撩拨用户的欲望,但是绝不让他一览无余,感情这玩意总是来得快去得也快,得不到的才是最好的,这个金科玉律适用于男女之情,同样适用于用户与产品.<br />      4.带着诚心做&quot;坏事&quot;.<br />    关于Gmail的各种争执中最大的就是在邮箱里面加广告了.以至于连参议员都要高呼:&quot;这是对圣洁的个人通信隐私空前的入侵!&quot;   ,技术总是双刃剑,天下没有免费的午餐.Gmail所作的只是把其余那些邮件服务商偷偷在做的事情公开化,告诉用户:我为你提供免费的服务,但是我要用你的隐私挣钱,当然你可以选择不用.这种诚恳的态度不知道要比那些文字上写的道貌岸然'您您您'字满天飞背地里叛卖个人信息的家伙们好了多少倍!别忽悠用户,你不可能在所有时间欺骗所有人.<br />      4.开放<br />    Yahoo   mail真的是个倒霉孩子,从Gmail诞生的第一天起就不断被拿来作对比以衬托出对方的伟大,可是自己也不争气,直到现在Yahoo   mail还是不允许免费版的用户使用pop来收取邮件,只有付费用户才可以.反观Gmail,不但支持pop,imap,而且连gadget都可以随便添了.再大的公司和再强的技术,也不可能做完所有的功能,开放不是整个几篇文档搭个开放平台高喊一声&quot;我开放了&quot;就完事的.开放是一种姿态,骨子里就是想着如何阴对手一把的家伙们又怎么可能做出一个开放性的产品呢.<br />      5.创新<br />      Google的9条创新原则在Gmail的成长中得到了完美展现,想想看5年来Gmail的变迁,gtalk的内嵌,labs的加入,theme的出现,一个产品一开始总是不可能全部是完美的,创新不是卧薪尝胆一口气发布后甩手就完事了,产品的发布恰恰是创新的开始.<br />      6.细节为王<br />    这个方面的例子实在太多了,从button的调整到loading时的进度条,再到页脚的Recent activity   record,甚至于title的显示,你处处可以感受到Gmail   team的用心,互联网产品同质化不是一般的高,一个好产品除了靠运营之外,只有靠细节制胜了.<br />    7.个性化与用户体验<br />      我们总是在不停的使用各种手段来观察用户、了解用户,研究用户的需求,但是无论多么深入的去研究也是无法满足所有的用户需求的,因为每个用户都是活生生的人,差异总是存在的.Gmail   labs真的是一个很聪明的作法,再也不用在会议室里争吵按钮放左还是放右、是用radio   button还是用下拉菜单了.Gmail把这些功能统统放进了lab里,让用户自己去选择吧.<br />    8.专注的力量<br />      Gmail没做门户,也没做下载,更没做IM(gtalk是嵌入),它只在老老实实的做邮箱,尝试把载入速度提升0.1秒,尝试把稳定性做到最好,专注的做好一个产品,而不是东抄抄西抄抄整十几个产品没一个能拿出手.<br />      9.一直在Beta<br />      即使进入世界排名前十大网站之列,Gmail的logo旁仍然有Beta的字样.这四个字母不知道会让多少对手和同行而汗颜.桃李不言下自成蹊,伟大的产品没有一个是自己整天说自己好和不停的贬低对手来抬高自己,谦逊是一种美德.<br />      在互联网行业发展如此快速的今天,下一个伟大的互联网应用会是谁?谁会成为下一个Gmail?</p>]]></description><category>新闻动态</category><comments>http://www.luoye.org/html/read_92.html</comments></item><item><title>让更多的人用上linux--Ubuntu简介</title><author>LuoYe</author><link>http://www.luoye.org/html/read_84.html</link><pubDate>Tue, 16 Jun 2009 16:00:00 +0000</pubDate><description><![CDATA[<p>算学习Linux，又喜欢方便快捷的朋友们，不妨试一试ubuntu</p><p><strong>一、Ubuntu这个名称怎么念？</strong></p><p>&quot;oo-BOON-too&quot;。如果你念的时候，旁边有人说你在说非洲话，那么你发音很标准 </p><p><strong>二、Ubuntu是什么？</strong><br />    </p><p>Ubuntu是什么呢？它是一个Linux操作系统的发行版。</p><p>Linux有多少发行版呢？许许多多，呵呵。全球知名的少说大概也有十几种。那么，为什么要给这一种发行版做公益广告呢？很简单，因为这是一种人性化的操作系统。</p><p>也许有朋友要问了：</p><p>“‘人性化’的操作系统？很奇怪啊！Linux不是命令行操作的吗？跟dos差不多，真是古董！图形界面也很难看的。我上次在虚拟机上面安装之后，发现连mp3,rmvb都播放不了，word文件都打不开！我想安装软件，说明上面居然让我编译！有没有搞错？！我又不是程序员，怎么会编译？！这怎么能叫人性化？……”</p><p>你所说的情况在Linux世界中确实曾经存在过。但是现在不会了，因为有了Ubuntu。</p><p><strong>三、安装之后立即就能用的功能</strong><br />    </p><p>在Windows安装好之后，你基本上做不了任何工作，因为你喜欢的word编辑器、photoshop图片处理工具、上bbs需要的cterm，浏览网页用的firefox都不存在，需要你自己动手，一一安装。</p><p>Ubuntu就不同了。</p><p>简单的安装之后，你会看到十分漂亮的界面，openoffice已经安装好了，你可以打开你的word,   excel甚至是powerpoint文件了。当然了，你不可能获得某些“特效”，不是Ubuntu不提供给你，是因为微软把图纸锁了起来，他们拿不到。</p><p>firefox也有了，你可以立即上网浏览了。</p><p>当然，还有不少游戏都已经安装上了 </p><p>且慢，图片处理工具之类的怎么办？如何安装呢？</p><p><strong>四、只要你联网，软件随便装<br />  </strong><br />  你根本不需要到网络上面去搜索那些软件，然后下载、在提示下面一路回车来安装。当然，你对这些烦琐的工作或许已经习以为常了。Windows用户是最具备耐心的用户，呵呵。</p><p>那么怎么办呢？</p><p>很简单，联好网络，打开菜单里面的新立得软件管理器，一切都可以搞定。你寻找某个软件名称，勾选之后，选择“应用”，就可以让Ubuntu忙碌地工作──下载、解压、安装、设置……你可以到一边喝茶，当你回来的时候这个软件就可以使用了。</p><p>老实说，这种安装不过瘾，没有历尽曲折艰辛后终于安装成功时的成就感。</p><p>好比说，你打算使用图片处理工具，photoshop不错，但是它没有Linux版本的，怎么办呢？很简单，你可以试试gimp。你需要的那些功能，它都有。不过我一直对这个软件很疑虑──它为什么不收费呢？</p><p>你不需要会编译就可以安装许许多多的软件，例如mplayer, xmms等等，有了这些软件，你就可以播放mp3, rmvb, avi,   mpeg等等媒体文件了。</p><p>Linux下面的软件是不是太少了？呵呵，你自己看看好了，如果你打算尝试所有列表里面的软件，那你得准备一块很大的硬盘。</p><p><strong>五、升级？连系统一起升级吧！</strong><br />    </p><p>还记得从Windows 98升级到Windows XP吗？</p><p>你得买一张Windows XP的光盘，还有office XP等配套工具光盘若干张。</p><p>你的Windows98当中原先的各种软件配置基本上都用不上了。你或许选择了备份文档之后，格式化，安装新系统。当一切你需要的功能好不容易搞定的时候，你需要“连续作战”，马上用ghost备份一次系统。才会觉得心里安定了下来。因为如果你一不留神执行了“错误的步骤”或者遭受病毒入侵，需要再次重新安装系统的话，你恐怕有砸掉显示器的冲动。</p><p>而Ubuntu当中，不光是各种应用软件更新很方便，你甚至可以让你的系统内核都随时保持更新，而这种功能不需要新的光盘。同样用新立得软件管理器就可以轻松完成。系统会在有新软件包的时候提示给你，但不会三天两头蹦出一个对话框，要求你更新。更新与否是用户的自由，不是吗？</p><p><strong>六、我想用usb设备！</strong><br />    </p><p>你想使用你的U盘，没问题，把它插上就可以了，自动识别，自动打开目录，你可以愉快地操作。我甚至发现初次安装之后，中文的显示就完全正常，特别方便。</p><p>打算视频会议？插上usb摄像头，打开默认安装了的通讯工具，测试一下，你的一举一动都想当清晰。</p><p><strong>七、我还打算看看Windows分区下面的文件<br />  </strong><br />  想访问你的Windows分区？如果安装时没有出现意外的话，它们现在就在你的桌面上面，打开读写就是了。刚用Ubuntu的时候，你的信任感还不太足，是吧？其实将来你会发现，把硬盘的70%给Windows大概是个错误，这个比例至少应该倒过来。</p><p><strong>八、嗯，听着不错，怎么获得Ubuntu？</strong><br />    </p><p>你可以免费获得Ubuntu的光盘！这也是我为什么要给它做这样一个免费广告的原因。“人人为我，我为人人”嘛。</p><p>具体细节请访问：</p><p><a onclick="javascript:pageTracker._trackPageview('a/shipit.ubuntu.com');" href="https://shipit.ubuntu.com/" target="_blank">https://shipit.ubuntu.com/</a><br />   </p><p>当然了，如果你是教育网用户，你也可以选择从上海交大的ftp上面下载。</p><p><a onclick="javascript:pageTracker._trackPageview('a/ftp.sjtu.edu.cn');" href="ftp://ftp.sjtu.edu.cn/ubuntu-cd/6.06" target="_blank">ftp://ftp.sjtu.edu.cn/ubuntu-cd/6.06</a><br />   </p><p><strong>九、我获得了Ubuntu，可是我只想试用</strong><br />    </p><p>“我不打算安装它，但是想了解它的特性。”在从前，这是个难以两全其美的问题。</p><p>对于Ubuntu，这不是问题。</p><p>把你的系统启动顺序调节为光驱优先，然后把Ubuntu的盘放进去，重新启动，你就能进入Ubuntu系统。当然，这只是尝鲜。因为你的光驱的读取速度比起硬盘来简直就是龟兔赛跑。</p><p>首先声明这篇文章是转载的，这几天内，我会发两篇原创的关于Ubuntu的详细教程，从最初的安装开始，写成一个系列，让更多的人用上linux</p>]]></description><category>新闻动态</category><comments>http://www.luoye.org/html/read_84.html</comments></item><item><title>微软必应已经可以用咯</title><author>LuoYe</author><link>http://www.luoye.org/html/read_76.html</link><pubDate>Sun, 14 Jun 2009 16:00:00 +0000</pubDate><description><![CDATA[<p>前天在新闻中听到微软推出的新SE“必应”,我刚刚发现已经可以用了:<br /><a href="http://www.bing.com/" target="_blank">http://www.bing.com/</a><br />传说這玩意的效果出人意料得好，或许会成为以后工作中查资料的首选哦。</p>]]></description><category>新闻动态</category><comments>http://www.luoye.org/html/read_76.html</comments></item><item><title>90后来看看吧--非主流与非生活之间</title><author>LuoYe</author><link>http://www.luoye.org/html/read_89.html</link><pubDate>Mon, 03 Aug 2009 16:00:00 +0000</pubDate><description><![CDATA[<p>其实我们一样...... <br /><img rel="lightbox" src="http://himg.qihoo.com/qhimg/comic/0_0/1e/01/31/1e01313qca5fa.093e42.jpg" border="0"  alt="" /><br /><br />我的手也受伤了 <br /><img rel="lightbox" src="http://himg.qihoo.com/qhimg/comic/0_0/1d/01/51/1d01510qcaa69.6fca00.jpg" border="0"  alt="" /><br /><br />嘴角滴下来的鲜红的血&nbsp;&nbsp;<br /><img rel="lightbox" src="http://himg.qihoo.com/qhimg/comic/0_0/17/01/73/170173cqc9ca1.267312.jpg" border="0"  alt="" /><br /><br />我吃这些嘴里会不会滴血呢&nbsp;&nbsp;<br /><img rel="lightbox" src="http://himg.qihoo.com/qhimg/comic/0_0/12/02/43/120243dqc9de2.41802a.jpg" border="0"  alt="" /><br /><br />颓废的坐在地上,埋葬逝去的爱<br /><img rel="lightbox" src="http://himg.qihoo.com/qhimg/comic/0_0/11/02/73/1102730qca17f.c19283.jpg" border="0"  alt="" /><br /><br />我蹲下来,只是为了让僵硬的腰喘息一下,我无暇思考,将来我会不会有爱 <br /><img rel="lightbox" src="http://himg.qihoo.com/qhimg/comic/0_0/1a/01/22/1a01223qca812.e50337.jpg" border="0"  alt="" /><br /><br />看看漂亮的我,看我漂亮的眼睛 <br /><img rel="lightbox" src="http://himg.qihoo.com/qhimg/comic/0_0/1c/04/22/1c04222qc9f96.834ec9.jpg" border="0"  alt="" /><br /><br />我不丑,只是我脸上挤不出漂亮的微笑,挤出的只有眼泪&nbsp;&nbsp;<br /><img rel="lightbox" src="http://himg.qihoo.com/qhimg/comic/0_0/15/03/a3/1503a3qc5c08.bcae77.jpg" border="0"  alt="" /><br /><br />我的背影<br /><img rel="lightbox" src="http://himg.qihoo.com/qhimg/comic/0_0/15/02/4f/15024fqca11d.35ec0c.jpg" border="0"  alt="" /><br /><br />同样是背影...我没有漂亮的T裤,后面还跟着一头可笑的但我们视为生命的小牛犊 <br /><img rel="lightbox" src="http://himg.qihoo.com/qhimg/comic/0_0/1c/03/e6/1c03e61qc4eb9.211107.jpg" border="0"  alt="" /><br /><br />我喜欢用破旧的背景来衬托我的失落&nbsp;&nbsp;<br /><img rel="lightbox" src="http://himg.qihoo.com/qhimg/comic/0_0/10/01/81/100181bqcaf30.761dad.jpg" border="0"  alt="" /><br /><br />我想有个好的背景来衬托我的珍贵的书本...只是,没有<br /><img rel="lightbox" src="http://himg.qihoo.com/qhimg/comic/0_0/10/03/b2/1003b27qc50a5.578cc7.jpg" border="0"  alt="" /><br /><br />看我漂亮的包包,看我纤细的手指<br /><img rel="lightbox" src="http://himg.qihoo.com/qhimg/comic/0_0/14/03/71/1403716qc5262.0ce64f.jpg" border="0"  alt="" /><br /><br />我值得炫耀的只有这些<br /><img rel="lightbox" src="http://himg.qihoo.com/qhimg/comic/0_0/16/01/06/160106qca7f1.5f10a7.jpg" border="0"  alt="" /><br /><br />追求的是一种感觉... <br /><img rel="lightbox" src="http://himg.qihoo.com/qhimg/comic/0_0/1b/02/3f/1b023fqca11e.6c0af5.jpg" border="0"  alt="" /><br /><br />我也在追求,但我追求的是什么<br /><img rel="lightbox" src="http://himg.qihoo.com/qhimg/comic/0_0/1a/01/c5/1a01c56qca7a6.6845b5.jpg" border="0"  alt="" /><br /><br />用打火机点燃...在火焰中,毁灭...<br /><img rel="lightbox" src="http://himg.qihoo.com/qhimg/comic/0_0/11/02/53/110253cqc9d34.eb26d1.jpg" border="0"  alt="" /><br /><br />爸爸走了,我的世界会不会随着爸爸的走一起毁灭...... <br /><img rel="lightbox" src="http://himg.qihoo.com/qhimg/comic/0_0/1f/04/e1/1f04e12qca48e.1392bf.jpg" border="0"  alt="" /><br /><br />做什么??? <br /><img rel="lightbox" src="http://himg.qihoo.com/qhimg/comic/0_0/13/01/25/130125aqca9f6.e37ddb.jpg" border="0"  alt="" /><br /><br />做些什么..... <br /><img rel="lightbox" src="http://himg.qihoo.com/qhimg/comic/0_0/11/04/5d/11045dqccf78.17a735.jpg" border="0"  alt="" /><br /><br />时尚 <br /><img rel="lightbox" src="http://himg.qihoo.com/qhimg/comic/0_0/15/01/03/150103dqca460.e1b60c.jpg" border="0"  alt="" /><br /><br />在这里,我的鞋也是一种时尚<br /><img rel="lightbox" src="http://himg.qihoo.com/qhimg/comic/0_0/13/01/03/1301035qca2bf.15ddb9.jpg" border="0"  alt="" /><br /><br />我努力使自己性感一点...... <br /><img rel="lightbox" src="http://himg.qihoo.com/qhimg/comic/0_0/13/01/85/130185eqcaac9.108280.jpg" border="0"  alt="" /><br /><br />我努力使自己暖和一点...... <br /><img rel="lightbox" src="http://himg.qihoo.com/qhimg/comic/0_0/1a/02/ea/1a02eaqca368.7db830.jpg" border="0"  alt="" /><br /><br />眼睛..... <br /><img rel="lightbox" src="http://himg.qihoo.com/qhimg/comic/0_0/18/02/35/1802355qca00a.413f61.jpg" border="0"  alt="" /><br /><br />眼睛<br /><img rel="lightbox" src="http://himg.qihoo.com/qhimg/comic/0_0/1e/04/46/1e04463qc94b4.06b698.jpg" border="0"  alt="" /><br /><br />时尚到喉咙..... <br /><img rel="lightbox" src="http://himg.qihoo.com/qhimg/comic/0_0/12/01/46/1201464qca84c.6620ad.jpg" border="0"  alt="" /> <br /><br />我不知道上面的喉咙能不能咽下我们辛苦做的饭<br /><img rel="lightbox" src="http://himg.qihoo.com/qhimg/comic/0_0/17/03/11/1703119qc54ad.151edf.jpg" border="0"  alt="" /><br /><br />遗忘的角落..... <br /><img rel="lightbox" src="http://himg.qihoo.com/qhimg/comic/0_0/16/01/71/1601711qca1c7.38756d.jpg" border="0"  alt="" /><br /><br />遗忘的角落<br /><img rel="lightbox" src="http://himg.qihoo.com/qhimg/comic/0_0/13/04/81/1304819qca209.1d6824.jpg" border="0"  alt="" /><br /><br />你的手,在干什么......&nbsp;&nbsp;<br /><img rel="lightbox" src="http://himg.qihoo.com/qhimg/comic/0_0/1f/03/62/1f03624qc619d.d21f0d.jpg" border="0"  alt="" /><br /><br />我的手又在做什么<br /><img rel="lightbox" src="http://himg.qihoo.com/qhimg/comic/0_0/19/01/a5/1901a5bqca372.747f94.jpg" border="0"  alt="" /><br /><br />今天偶然看到这贴,感触很大。也许这些图片本来就不应该放在一起，他们就像是不同世界的人。不希望于“非主流”能变得“主流”一点，只是希望你们在“非主流”的同时能看看那些生活在“主流”中并过着“非生活”的人。<br /></p>]]></description><category>随写杂记</category><comments>http://www.luoye.org/html/read_89.html</comments></item><item><title>看了仙剑奇侠传3....</title><author>LuoYe</author><link>http://www.luoye.org/html/read_88.html</link><pubDate>Mon, 13 Jul 2009 16:00:00 +0000</pubDate><description><![CDATA[<p>FLASH PLAYER...</p><p>用了3天的时间终于把仙剑奇侠传3看完了,感觉真是不错的电视，里面的故事情节好，人物好，演员演的都不错 ，让我看完后心里久久还在里面，难以忘却！</p><p>简单的介绍和感想:</p><p>景天和雪见最后在一起了这个结果真的不错不错,只可惜那个徐没有和他喜欢的人在一起,有点遗憾!希望他们如果有来世,一定要在一起哦!茂茂好可怜哦,好感人,用自己的肉来换粮食给人家,真的不亏是景天的好兄弟,还有那个人也是.有时候在想古代的那些朋友,兄弟真够意气,比亲兄弟还亲,现在的呢,好听的来说只能说现实点吧!景天和他的妹妹感情真好,尤其是他妹妹对他,让我好希望我也有这么个妹妹,哎~这个就是我独身子女的悲哀吧!突然想起来了雪见旁边的那个花颖也真的好可爱!</p><p>总之这个电视剧演的真好,开始期待四的出来,期待!</p><p>我把里面好听的歌曲都放我网站首页了,想听听的可以去听听,<a href="http://www.luoye.org" target="_blank">点击欣赏</a></p>FLASH PLAYER...<p align="right">用键盘来记录生活中的点点滴滴,HOHO!~~ 落叶</p>]]></description><category>随写杂记</category><comments>http://www.luoye.org/html/read_88.html</comments></item><item><title>一道有意思的数学题-Monty Hall problem</title><author>LuoYe</author><link>http://www.luoye.org/html/read_86.html</link><pubDate>Tue, 16 Jun 2009 16:00:00 +0000</pubDate><description><![CDATA[  <p>你参加电视台的一个抽奖节目。台上有三个门，一个后边有汽车，其余后边是山羊。主持人让你任意选择其一。然后他打开其余两个门中的一个，你看到是山羊。这时，他给你机会让你可以重选，也就是你可以换选另一个剩下的门。那么，你换不换？<br />    补充：你不知道主持人是否提前知道哪扇门里是车，你只知道他打开了有山羊的门。</p><p>相信很多人能得到正确答案，其实这题的精华在于策略选择的思维。</p><p>在机场中，你想从A点前往B点。（为了将问题简化，假设机场是一条线性通道。）一些区域有电动扶梯（双向的），另一些区域没有。你的步行速度恒定为v，   电动扶梯的运行速度为u，因此在扶梯上，你的实际速度为v+u。（显然，你不会搭乘与你前进方向不一致的扶梯。）你的目标是尽可能快地从A点到达B点。<br />  1.   假定你需要暂停片刻，比如系鞋带。请问你应该在电动扶梯上系，还是在没有上电动扶梯时系？假定两种情况下，系鞋带的时间相同。<br />  2.   假定你有有限数量的多余能量，用来奔跑。在跑动时，你的速度提高到v’（如果在电动扶梯上，就相应为v’+u）。请问你应该在电动扶梯上跑，还是在没有上电动扶梯时跑？假定两种情况下，你可供奔跑的能量相同。<br />3.   在狭义相对论的情况下，上述答案是否发生改变？</p>]]></description><category>随写杂记</category><comments>http://www.luoye.org/html/read_86.html</comments></item><item><title>遇到弱智的人怎么办</title><author>LuoYe</author><link>http://www.luoye.org/html/read_85.html</link><pubDate>Tue, 16 Jun 2009 16:00:00 +0000</pubDate><description><![CDATA[<p>弱智，傻逼这些词很刺眼，看到这些词很容易变得情绪化，尤其是当真正的傻逼看到描写傻逼的文章时，常常很生气，因为他/她觉得自己很牛逼，不是傻逼，最后得出结论：作者是傻逼。</p><p>这种现象在论坛上司空见惯，平时我都只是围观，一笑而过。</p><p>想起前些日子李笑来老师的一篇美文《遇到弱智的人怎么办》，弱智的人每天都会碰到，二十几岁的人了，应该要学会正确处理这类事情。</p><p>文章语气很平和，一个心智健全的人应该能够以平常心读完这篇文章。</p><p>有读者问：</p> <blockquote>            <p>笑来，你好。遇到弱智的人怎么办？是在工作环境中所有人都公认的弱智。这个人是你在工作中必须与之合作的人。沟通成本很   高，但是沟通也没有效果，每次都是鸡同鸭讲。明知道和这种人讨论、沟通没有任何意义，可是还是会忍不住发火。自己也知道发火不对，可是还是控制不住。怎样   才能控制这种情绪？</p></blockquote>          <p>我很年轻的时候（26岁之前），总觉得身边的全是弱智——事实上，许多年之后回头再看，觉得当时想得并不是太离谱。我的运气比较好，竟然有高人提前   教育我，因此并没有花费太多时间和精力与所谓的弱智们纠缠。高人说，不要与傻瓜争辩或者纠缠。我照做了。不过，很多人不知道应该这样。我的观察是：如果你   真的不知死活与弱智争辩或者纠缠的话，那么他们会瞬间把你拉到他们的水平上，之后熟练运用他们在那个水平上多年来积累的大量经验毫无悬念地打败你，最终你   不仅会遍体鳞伤还要屈尊仰望。</p>          <p>我倒有另外一个建议：学会专心做事很重要，走你自己的路，走得越远越宁静。人归人，事归事（所谓的“上帝的归上帝，凯撒的归凯撒”也是一个道理不同   的说法而已）。“弱智”者如若真的弱智，其实并非他们故意。他们也从未想过运用他们的弱智令你心烦意乱——换句话讲，他们就算真的弱智，也不是为了气死你   而故意那么弱智的。专心做事有两个好处：1）让你渐渐远离那些弱智；2）最终无法消灭的那少数几个弱智会因为专心做事而无法触及你的活动范围。</p>          <p>不过，话说回来，善待他人更多意义上不仅仅是美德，还是自我保护策略：1）其实你可能判断错误，弱智的不一定是别人；2）就算他弱智，你比他强，那   是不是还有比你更强的人？换言之，在别人眼里你可能也是个弱智——想想吧，如果你不想被那么对待，最好不要轻易那么对待别人，尽管他们不是同一个人。</p>          <p>该干嘛干嘛，要么不与之打交道，要是必须打交道，还是善待他人可能更好。</p>]]></description><category>随写杂记</category><comments>http://www.luoye.org/html/read_85.html</comments></item><item><title>一段不错的英文歌曲</title><author>LuoYe</author><link>http://www.luoye.org/html/read_81.html</link><pubDate>Sun, 14 Jun 2009 16:00:00 +0000</pubDate><description><![CDATA[<p><img alt="j" src="list-2009-06151.jpg" border="0" /><br /> FLASH PLAYER...<br />  最喜欢开头的那段，呓语和笑声。非常空灵。<br />  这首歌曲调忧伤而凄美，很适合情绪低落的时候反复聆听。<br />  <br />  所属专辑:Tatu   Remixes<br />  发行时间：2003年9月29日<br />  发行公司：Universal Int'l<br />  专辑语种：英文<br /></p>]]></description><category>随写杂记</category><comments>http://www.luoye.org/html/read_81.html</comments></item><item><title>jQuery性能优化指南</title><author>LuoYe</author><link>http://www.luoye.org/html/read_97.html</link><pubDate>Sun, 16 Aug 2009 16:00:00 +0000</pubDate><description><![CDATA[<p>现在jquery应用的越来越多, 有些同学在享受爽快淋漓coding时就将性能问题忽略了,  比如我.  jquery虽在诸多的js类库中性能表现还算优秀,   但毕竟不是在用原生的javascript开发, 性能问题还是需要引起重视的. 在twitter上发现了&lt;jQuery Performance   Rules&gt;这篇文章, 简单的摘译了一下:</p><p>　　总是从ID选择器开始继承</p><p>　　在class前使用tag</p><p>　　将jquery对象缓存起来</p><p>　　掌握强大的链式操作</p><p>　　使用子查询</p><p>　　对直接的DOM操作进行限制</p><p>　　冒泡</p><p>　　消除无效查询</p><p>　　推迟到 $(window).load</p><p>　　压缩js</p><p>　　全面掌握jquery库</p><p>　　1. 总是从ID选择器开始继承</p><p>　　在jquery中最快的选择器是ID选择器. 因为它直接来自于Javascript的getElementById()方法.</p><p>　　&lt;div   id=“content”&gt;</p><p>　　&lt;form   method=“post” action=“/”&gt;</p><p>　　&lt;h2&gt;Traffic Light&lt;/h2&gt;</p><p>　　&lt;ul   id=“traffic_light”&gt;</p><p>　　&lt;li&gt;&lt;input   type=“radio” class=“on” name=“light” value=“red” /&gt; Red&lt;/li&gt;</p><p>　　&lt;li&gt;&lt;input   type=“radio” class=“off” name=“light” value=“yellow” /&gt; Yellow&lt;/li&gt;</p><p>　　&lt;li&gt;&lt;input   type=“radio” class=“off” name=“light” value=“green” /&gt; Green&lt;/li&gt;</p><p>　　&lt;/ul&gt;</p><p>　　&lt;input   class=“button” id=“traffic_button” type=“submit”   value=“Go” /&gt;</p><p>　　&lt;/form&gt;</p><p>　　&lt;/div&gt;</p><p>　　像这样选择按钮是低效的:</p><p>　　var traffic_button = $(‘#content .button’);</p><p>　　用ID直接选择按钮效率更高:</p><p>　　var   traffic_button = $(‘#traffic_button’);</p><p>　　选择多个元素</p><p>　　提到多元素选择其实是在说DOM遍历和循环, 这些都是比较慢的东西.为了提高性能, 最好从就近的ID开始继承.</p><p>　　var   traffic_lights = $(‘#traffic_light input’);</p><p>2. 在class前使用tag</p><p>第二快的选择器是tag选择器($(’head’)). 同理,因为它来自原生的getElementsByTagName() 方法.</p><p>&lt;div   id=“content”&gt; <br />  &lt;form   method=“post” action=“/”&gt; <br />  &lt;h2&gt;Traffic Light&lt;/h2&gt; <br />  &lt;ul id=“traffic_light”&gt; <br />  &lt;li&gt;&lt;input type=“radio” class=“on” name=“light” value=“red” /&gt; Red&lt;/li&gt; <br />  &lt;li&gt;&lt;input type=“radio” class=“off” name=“light” value=“yellow” /&gt; Yellow&lt;/li&gt; <br />  &lt;li&gt;&lt;input type=“radio” class=“off” name=“light” value=“green” /&gt; Green&lt;/li&gt; <br />  &lt;/ul&gt; <br />  &lt;input class=“button” id=“traffic_button”   type=“submit” value=“Go” /&gt; <br />  &lt;/form&gt; <br />  &lt;/div&gt;</p><p> 总是用一个tag name来限制(修饰)class (并且不要忘记就近的ID):</p><p>var   active_light = $(‘#traffic_light input.on’); </p><p>注意: 在jquery中Class是最慢的选择器. IE浏览器下它会遍历所有DOM节点不管它用在那里.</p><p>不要用用tag name来修饰ID. 下面的例子将会遍历所有的div元素来查找id为’content’的哪一个节点:</p><p>var content   = $(‘div#content’); </p><p>用ID修饰ID也是画蛇添足:</p><p>var   traffic_light = $(‘#content #traffic_light’);</p><p>3.将jquery对象缓存起来</p><p>要养成将jquery对象缓存进变量的习惯.</p><p>永远不要这样做:</p><p>$(‘#traffic_light input.on).bind(’click‘,   function(){…}); <br />  $(’#traffic_light input.on).css(‘border’, ‘3px   dashed yellow’); <br />  $(‘#traffic_light   input.on).css(’background-color‘, ‘orange‘); <br />  $(’#traffic_light   input.on).fadeIn(’slow’); 最好先将对象缓存进一个变量然后再操作:</p><p>var   $active_light = $(‘#traffic_light input.on’); <br />  $active_light.bind(‘click’, function(){…}); <br />  $active_light.css(‘border’, ‘3px dashed   yellow’); <br />  $active_light.css(‘background-color’, ‘orange’); <br />  $active_light.fadeIn(’slow’); </p><p>为了记住我们本地变量是jquery的封装, 通常用一个$作为变量前缀. 记住,永远不要让相同的选择器在你的代码里出现多次.</p><p>缓存jquery结果,备用 <br />  如果你打算将jquery结果对象用在程序的其它部分,或者你的function会多次执行,   那么就将他们缓存到一个全局变量中.</p><p>定义一个全局容器来存放jquery结果, 我们就可以在其它函数引用它们:</p><p><br />  // 在全局范围定义一个对象 (例如:   window对象) <br />  window.$my = <br />  { <br />  //   初始化所有可能会不止一次要使用的查询 <br />  head : $(‘head’), <br />  traffic_light :   $(‘#traffic_light’), <br />  traffic_button :   $(‘#traffic_button’) <br />  }; </p><p> <br />  function do_something() <br />  { <br />  // 现在你可以引用存储的结果并操作它们 <br />  var script   = document.createElement(’script’); <br />  $my.head.append(script);</p><p>// 当你在函数内部操作是,   可以继续将查询存入全局对象中去. <br />  $my.cool_results = $(‘#some_ul li’); <br />  $my.other_results = $(‘#some_table td’);</p><p>//   将全局函数作为一个普通的jquery对象去使用. <br />  $my.other_results.css(‘border-color’, ‘red’); <br />  $my.traffic_light.css(‘border-color’, ‘green’); <br />  }</p><p>4. 掌握强大的链式操作</p><p><br />  上面的例子也可以写成这样:</p><p>var   $active_light = $(‘#traffic_light   input.on’);$active_light.bind(‘click’, function(){…}) <br />  .css(‘border’, ‘3px dashed yellow’) <br />  .css(‘background-color’, ‘orange’) <br />  .fadeIn(’slow’); </p><p>这样可以写更少的代码, 让我们的js更轻量.</p><p>5.使用子查询 <br />  jQuery 允许我们对一个已包装的对象使用附加的选择器操作. 因为我们已经在保存了一个父级对象在变量里,   这样大大提高对其子元素的操作:</p><p>&lt;div   id=“content”&gt; <br />  &lt;form   method=“post” action=“/”&gt; <br />  &lt;h2&gt;Traffic Light&lt;/h2&gt; <br />  &lt;ul id=“traffic_light”&gt; <br />  &lt;li&gt;&lt;input type=“radio” class=“on” name=“light” value=“red” /&gt; Red&lt;/li&gt; <br />  &lt;li&gt;&lt;input type=“radio” class=“off” name=“light” value=“yellow” /&gt; Yellow&lt;/li&gt; <br />  &lt;li&gt;&lt;input type=“radio” class=“off” name=“light” value=“green” /&gt; Green&lt;/li&gt; <br />  &lt;/ul&gt; <br />  &lt;input class=“button” id=“traffic_button”   type=“submit” value=“Go” /&gt; <br />  &lt;/form&gt; <br />  &lt;/div&gt; </p><p>例如, 我们可以用子查询的方法来抓取到亮或不亮的灯, 并缓存起来以备后续操作.</p><p>var   $traffic_light = $(‘#traffic_light’), <br />  $active_light =   $traffic_light.find(‘input.on’), <br />  $inactive_lights =   $traffic_light.find(‘input.off’); </p><p>提示: 你可以用逗号分隔的方法一次声明多个局部变量–节省字节数</p><p>6.对直接的DOM操作进行限制 <br />  这里的基本思想是在内存中建立你确实想要的东西，然后更新DOM   。这并不是一个jQuery最佳实践，但必须进行有效的JavaScript操作 。直接的DOM操作速度很慢。</p><p>例如,你想动态的创建一组列表元素, 千万不要这么做:</p><p>var   top_100_list = [...], //   假设这里是100个独一无二的字符串 <br />  $mylist = $(‘#mylist’); // jQuery 选择到 &lt;ul&gt; 元素 </p><p>for   (var   i=0, l=top_100_list.length; i&lt;l; i++) <br />  { <br />  $mylist.append(‘&lt;li&gt;’ + top_100_list[i] + ‘&lt;/li&gt;’); <br />  }<br />  我们应该将整套元素字符串在插入进dom中之前全部创建好:</p><p>var   top_100_list = [...], <br />  $mylist = $(‘#mylist’), <br />  top_100_li = “”; // 这个变量将用来存储我们的列表元素 </p><p>for   (var   i=0, l=top_100_list.length; i&lt;l; i++) <br />  { <br />  top_100_li += ‘&lt;li&gt;’ + top_100_list[i] + ‘&lt;/li&gt;’; <br />  } <br />  $mylist.html(top_100_li);<br />  我们在插入之前将多个元素包裹进一个单独的父级节点会更快:</p><p>var   top_100_list = [...], <br />  $mylist = $(‘#mylist’), <br />  top_100_ul = ‘&lt;ul id=”#mylist”&gt;’; </p><p>for   (var   i=0, l=top_100_list.length; i&lt;l; i++) <br />  { <br />  top_100_ul += ‘&lt;li&gt;’ + top_100_list[i] + ‘&lt;/li&gt;’; <br />  } <br />  top_100_ul +=   ‘&lt;/ul&gt;’; //关闭无序列表 <br />  $mylist.replaceWith(top_100_ul);<br />  如果你做了以上几条还是担心有性能问题,那么:</p><p>试试jquery的 clone() 方法, 它会创建一个节点树的副本, 它允许以”离线”的方式进行dom操作, 当你操作完成后再将其放回到节点树里. <br />  使用 DOM DocumentFragments. 正如jQuery作者所言, 它的性能要明显优于直接的dom操作.</p><p>7. 冒泡</p><p>除非在特殊情况下, 否则每一个js事件(例如:click, mouseover, 等.)都会冒泡到父级节点.   当我们需要给多个元素调用同个函数时这点会很有用.</p><p>代替这种效率很差的多元素事件监听的方法就是, 你只需向它们的父节点绑定一次, 并且可以计算出哪个节点触发了事件.</p><p>例如, 我们要为一个拥有很多输入框的表单绑定这样的行为: 当输入框被选中时为它添加一个class</p><p>像这样绑定事件是低效的:</p><p>$(‘#entryform input).bind(’focus‘,   function(){ <br />  $(this).addClass(’selected‘); <br />  }).bind(’blur‘, function(){ <br />  $(this).removeClass(’selected‘); <br />  }); </p><p>我们需要在父级监听获取焦点和失去焦点的事件:</p><p>$(‘#entryform’).bind(‘focus’,   function(e){ <br />  var cell = $(e.target); // e.target grabs the node that triggered the event. <br />  cell.addClass(’selected’); <br />  }).bind(‘blur’, function(e){ <br />  var cell = $(e.target); <br />  cell.removeClass(’selected’); <br />  });<br />  父级元素扮演了一个调度员的角色,   它可以基于目标元素绑定事件. 如果你发现你给很多元素绑定了同一个事件监听, 那么你肯定哪里做错了.</p><p>8.消除无效查询</p><p>尽管jquery可以很优雅的处理没有匹配元素的情况, 但它还是需要花费时间去寻找. 如果你整站只有一个全局js,   那么极有可能把所有的jquery函数塞进$(document)ready(function(){//所有你引以为傲的代码})里.</p><p>只运行在页面里用到的函数. 大多数有效的方法就是使用行内初始化函数, 这样你的模板就能准确的控制何时何处该执行js.</p><p>例如, 你的”文章”页面模板, 你可能会引用如下的代码在body结束处:</p><p>&lt;script   type=“text/javascript&gt; <br />  mylib.article.init(); <br />  &lt;/script&gt; <br />  &lt;/body&gt; </p><p>如果你的页面模板包含一些多变的模块可能不会出现在页面中, 或者为了视觉呈现的原因你需要它们能够快速加载, 你可以将初始化函数紧跟在模块之后.</p><p>&lt;ul   id=“traffic_light”&gt; <br />  &lt;li&gt;&lt;input   type=“radio” class=“on” name=“light” value=“red” /&gt; Red&lt;/li&gt; <br />  &lt;li&gt;&lt;input type=“radio” class=“off” name=“light” value=“yellow” /&gt; Yellow&lt;/li&gt; <br />  &lt;li&gt;&lt;input type=“radio” class=“off” name=“light” value=“green” /&gt; Green&lt;/li&gt; <br />  &lt;/ul&gt; <br />  &lt;script type=“text/javascript&gt; <br />  mylib.traffic_light.init(); <br />  &lt;/script&gt; </p><p>你的全局js库可能会是这样子的:</p><p>var mylib   = <br />  { <br />  article_page : <br />  { <br />  init : function() <br />  { <br />  // Article 特有的jQuery函数. <br />  } <br />  }, <br />  traffic_light : <br />  { <br />  init   : function() <br />  { <br />  // Traffic light 特有的jQuery函数. <br />  } <br />  } <br />  }</p><p><strong>9. 推迟到 $(window).load</strong></p><p>jquery对于开发者来说有一个很诱人的东西, 可以把任何东西挂到$(document).ready下冒充事件.   在大多数例子中你都会发现这样的情况.</p><p>尽管$(document).rady 确实很有用, 它可以在页面渲染时,其它元素还没下载完成就执行. 如果你发现你的页面一直是载入中的状态,   很有可能就是$(document).ready函数引起的.</p><p>你可以通过将jquery函数绑定到$(window).load 事件的方法来减少页面载入时的cpu使用率.   它会在所有的html(包括&lt;iframe&gt;)被下载完成后执行.</p><p>$(window).load(function(){ <br />  // 页面完全载入后才初始化的jQuery函数. <br />  }); </p><p>多余的功能例如拖放, 视觉特效和动画, 预载入隐藏图像,等等. 都是适合这种技术的场合.</p><p><strong>10. 压缩js</strong></p><p>推荐一个js在线压缩地址:  <a href="http://dean.edwards.name/packer/" target="_blank">http://dean.edwards.name/packer/</a> </p><p><strong>11. 全面掌握jquery库</strong></p><p>知己知彼, 百战百胜.  只有更深入的了解jQuery才能更灵活的使用它.  这里提供一个<a href="http://acodingfool.typepad.com/blog/jquery-13-cheat-sheet.html" target="_blank">jQuery的速查手册</a>, 可以打印出来随身携带.  要是有能力将jQuery源码通读一遍那就更好了.</p>]]></description><category>开源文章</category><comments>http://www.luoye.org/html/read_97.html</comments></item><item><title>as3上传文件(后台PHP)</title><author>LuoYe</author><link>http://www.luoye.org/html/read_96.html</link><pubDate>Sun, 16 Aug 2009 16:00:00 +0000</pubDate><description><![CDATA[<p>AS部分:</p><p>-----------------------------------------------------------------------------------------------------------------------</p><p>package    <br />  { <br />  import flash.display.Sprite; <br />    <br />  import   flash.events.Event; <br />  import   flash.events.MouseEvent; <br />  import   fl.controls.Button; <br />    <br />  import   flash.net.FileReference; <br />  import flash.net.FileFilter; <br />    <br />  public   class Main extends Sprite <br />  { <br />  public var file:FileReference; <br />  public var btn:Button; <br />  public var arr:Array; <br />  public var imgfilter:FileFilter; <br />  public var swffilter:FileFilter; <br />  public var ureq:URLRequest; <br />    <br />  public   function Main()  <br />  { <br />  file = new FileReference(); <br />  btn   = new Button(); <br />  imgfilter = new FileFilter(&quot;Image&quot;, &quot;*.png;*.jpg&quot;); <br />    <br />  btn.label   = &quot;browser&quot;; <br />  btn.emphasized   = true; <br />  btn.width   = 150; <br />  btn.move(100, 100); <br />  ureq.url   = &quot;<a href="http://localhost/test/img/upload.php">http://localhost/test/img/upload.php</a>&quot;; <br />    <br />    <br />  btn.addEventListener(MouseEvent.MOUSE_DOWN,   down); <br />  file.addEventListener(Event.COMPLETE,   complete); <br />  file.addEventListener(Event.OPEN,open); <br />  file.addEventListener(Event.CANCEL, cancel);//点击取消按钮会广播这个事件 <br />  file.addEventListener(Event.SELECT, select); <br />    <br />  addChild(btn); <br />  } <br />    <br />    <br />  public function down(e:MouseEvent):void { <br />  file.browse([imgfilter]);//browse的参数是以个FileFilter对象，限制文件选择的类型 <br />  } <br />  public function complete(e:Event):void { <br />  trace(&quot;complete&quot;+e); <br />  } <br />  public function   open(e:Event):void { <br />  trace(&quot;open&quot;); <br />  } <br />  public function cancel(e:Event):void { <br />  trace(&quot;cancel&quot;); <br />  } <br />  public function select(e:Event):void { <br />  var tem   = e.target; <br />  trace(tem.name + &quot;,&quot; + tem.creationDate + &quot;,&quot; + tem.size); <br />  file.upload(ureq);//选择结束后，开始上传 <br />  } <br />  } <br />    <br />  }</p><p> </p><p>PHP部分:</p><p>---------------------------------------------------------------------------</p><p>&lt;?php <br />  $uploaddir =   './uploads/';//设置存储路径 <br />  $filename = $_FILES['Filedata']['name'];//获得选择的文件 <br />  $uploadfile = $uploaddir . $filename;//存储文件路径 <br />  $uploadfile = iconv('utf-8', 'gb2312',   $uploadfile);//设置文件格式 <br />  move_uploaded_file($_FILES['Filedata']['tmp_name'],   $uploadfile);//开始上传 <br />  ?&gt;</p>]]></description><category>开源文章</category><comments>http://www.luoye.org/html/read_96.html</comments></item><item><title>完全手册 Flex 3.0 RIA开发详解</title><author>LuoYe</author><link>http://www.luoye.org/html/read_94.html</link><pubDate>Sun, 16 Aug 2009 16:00:00 +0000</pubDate><description><![CDATA[<p><strong>简介</strong><br />  Flex是目前最流行的RIA（Rich Internet   Application）开发技术之一。本书由浅入深，循序渐进地讲解如何使用Flex技术开发RIA应用程序。全书内容包括Flex简介、安装和配置   Flex开发运行环境、熟悉Flex开发工具、ActionScript   3.0语法、Flex组件开发、CSS布局、美化界面、数据传输与交互、开发框架Cairngorm等。为了便于读者学习，本书最后两章分别对两个较综合   的实例进行分析，详细讲解了Cairngorm开发框架的搭建、组件设计、功能设计、界面外观设计。<br />  本书适合广大Flex程序开发人员、RIA开发爱好者和大专院校学生阅读，尤其是有编程经历的技术开发人员。<br />  <br />  作者：黄曦<br />  出版社：电子工业出版社<br />  出版日期：2008-01<br />  <br />  <strong>适合的读者</strong><br />  —   Flex专业开发人员<br />  — 网站开发人员<br />  — Flex程序维护人员<br />  — 客户端程序开发人员<br />  — RIA开发爱好者<br />  —   UI界面设计人员<br />  — 大中专院校的学生<br />  — 社会培训学生<br />  <br />  <strong>下载</strong><br />  eMule 书(rar/56.4MB)：<a href="ed2k://%7Cfile%7C%5B%E5%AE%8C%E5%85%A8%E6%89%8B%E5%86%8CFlex3.0RIA%E5%BC%80%E5%8F%91%E8%AF%A6%E8%A7%A3.%E5%85%89%E7%9B%98.%E6%95%99%E7%A8%8B%5D.wqscFlex3.0RIAdianzijiaocheng.rar%7C59186234%7C9a4246a1ce5558379ee58e015ba85e3a%7Ch=MEXQINJLQVT7NJ6HQTZTSUKGYSVBSMXO%7C/" target="_blank">book download </a><br />  eMule 代码(ISO/403.7MB)：<a href="ed2k://%7Cfile%7C%5B%E5%AE%8C%E5%85%A8%E6%89%8B%E5%86%8CFlex3.0RIA%E5%BC%80%E5%8F%91%E8%AF%A6%E8%A7%A3.%E5%85%89%E7%9B%98.%E6%95%99%E7%A8%8B%5D.wqscFlex3.0guangpan.ISO%7C423297024%7C3070e90c34f112bf46fee1c6f4f3ca83%7Ch=HIDD3WFYUSGBMVAO65EYW7O2AXASAH6R%7C/" target="_blank">sourcecode download </a></p><p><br />    <strong>目录</strong><br />  第一篇 基础篇<br />  第 1章 Flex概述 2<br />  1.1 Flex简介 2<br />  1.1.1 Flex的技术特点   3<br />  1.1.2 Flex 3.0的新特性 5<br />  1.2 Flex Builder 3的下载与安装 6<br />  1.2.1 安装Flex Builder   3的系统<br />  1.2.1 要求 7<br />  1.2.2 下载Flex Builder 3 Beta 1 7<br />  1.2.3 Flex Builder 3   Beta 1的安装 9<br />  1.3 Flex基础结构MXML介绍 11<br />  1.4 建立第一个Flex 3.0程序 12<br />  1.5   编译与运行第一个Flex 3.0程序 15<br />  1.6 小结 16<br />  第 2章 熟悉开发环境Flex Builder 3 17<br />  2.1 熟悉Flex   Builder 3工作区 17<br />  2.2.1 Perspectives（透视） 17<br />  2.2.2 Editors（编辑器） 18<br />  2.2.3   Views（视图） 20<br />  2.2 编译与运行Flex 3.0程序详解 21<br />  2.3 调试Flex 3.0程序 23<br />  2.3.1 添加断点   23<br />  2.3.2 调试程序 24<br />  2.3.3 监视变量 25<br />  2.4 Flex 3.0项目工程概述 25<br />  2.4.1 Flex   Project 26<br />  2.4.2 ActionScript Project 26<br />  2.4.3 AIR Project 26<br />  2.4.4   Flex Library Project 26<br />  2.5 Flex Builder 3常用快捷键 27<br />  2.6 使用Flex Help   27<br />  2.7 小结 28<br />  第二篇 ActionScript 3.0语法篇<br />  第 3章 ActionScript 3.0基础 30<br />  3.1   ActionScript 3.0概述 30<br />  3.2 使用ActionScript 3.0 30<br />  3.2.1   在MXML文件中直接编写<br />  3.2.1 ActionScript 3.0 31<br />  3.2.2 在AS文件中编写ActionScript 3.0   31<br />  3.2.3 MXML中引用AS文件 33<br />  3.3 创建第一个ActionScript 3.0<br />  3.3 应用程序 33<br />  3.4 小结   37<br />  第 4章 数据类型 38<br />  4.1 常量与变量 38<br />  4.1.1 直接常量和符号常量 38<br />  4.1.2 变量 39<br />  4.1.3   变量赋初值 40<br />  4.1.4 局部变量和全局变量 40<br />  4.1.5 变量的存储方式 42<br />  4.2 整型数据 43<br />  4.2.1 整型常量   43<br />  4.2.2 整型变量 44<br />  4.3 实型数据 45<br />  4.3.1 实型常量的表示方法 46<br />  4.3.2 实型变量 47<br />  4.4   字符串数据 47<br />  4.4.1 字符串常量 48<br />  4.4.2 转义字符 48<br />  4.4.3 字符串变量 49<br />  4.5 各类型数据之间的转换   49<br />  4.5.1 自动类型转换 49<br />  4.5.2 强制类型转换 50<br />  4.6 小结 50<br />  第 5章 运算符和表达式 51<br />  5.1   ActionScript 3.0运算符简介 51<br />  5.2 算术运算符和算术表达式 52<br />  5.2.1 基本的算术运算符 52<br />  5.2.2   算术表达式 53<br />  5.2.3 运算符的优先级和结合性 53<br />  5.2.4 自增、自减运算符 53<br />  5.3 关系运算符和关系表达式   54<br />  5.3.1 关系运算符 54<br />  5.3.2 关系表达式 55<br />  5.4 逻辑运算符和逻辑表达式 56<br />  5.4.1 逻辑运算符   56<br />  5.4.2 逻辑运算的值 57<br />  5.4.3 逻辑表达式 57<br />  5.5 赋值运算符和赋值表达式 58<br />  5.3.1   简单赋值运算符和简单赋值<br />  5.3.1 表达式 58<br />  5.3.2 复合赋值运算符和复合赋值<br />  5.3.1 表达式 59<br />  5.6   逗号运算符和逗号表达式 59<br />  5.7 位运算符 60<br />  5.8 小结 63<br />  第 6章 程序设计的基本结构 64<br />  6.1 顺序结构程序设计   64<br />  6.1.1 表达式语句 64<br />  6.1.2 函数调用语句 64<br />  6.1.3 复合语句 65<br />  6.1.4 空语句   65<br />  6.1.5 赋值语句 65<br />  6.2 分支结构程序设计 67<br />  6.2.1 if语句 67<br />  6.2.2 if…else语句   67<br />  6.2.3 if…else…if语句 68<br />  6.2.4 if语句的嵌套 71<br />  6.2.5 switch语句 72<br />  6.3   循环结构程序设计 74<br />  6.3.1 goto语句 74<br />  6.3.2 while语句 75<br />  6.3.3 do-while语句   75<br />  6.3.4 for语句 77<br />  6.3.5 循环的嵌套 80<br />  6.3.6 几种循环语句的比较 80<br />  6.3.7 break语句   80<br />  6.3.8 continue语句 81<br />  6.4 小结 82<br />  第 7章 函数 83<br />  7.1 函数概述 83<br />  7.2   函数定义的一般形式 84<br />  7.2.1 无参函数的定义形式 84<br />  7.2.2 有参函数的定义形式 85<br />  7.3 函数的参数和函数的返回值   86<br />  7.3.1 形式参数和实际参数 86<br />  7.3.2 函数的返回值 87<br />  7.4 函数的调用 88<br />  7.4.1 函数调用的一般形式   88<br />  7.4.2 函数调用的方式 89<br />  7.5 函数的嵌套调用 89<br />  7.6 函数的递归调用 90<br />  7.7 数组作为函数参数   91<br />  7.7.1 数组元素作为函数实参 92<br />  7.7.2 数组名作为函数参数 92<br />  7.8 小结 93<br />  第 8章 面向对象基础   94<br />  8.1 类和对象 94<br />  8.1.1 类的定义形式 94<br />  8.1.2 类的成员类型 95<br />  8.1.3 调用类中的成员   96<br />  8.2 构造函数和析构函数 97<br />  8.2.1 构造函数 97<br />  8.2.2 析构函数 99<br />  8.3 继承与派生   100<br />  8.3.1 派生类定义的一般形式 101<br />  8.3.2 派生类的保护成员 101<br />  8.3.3 派生类的构造函数 102<br />  8.4   接口 103<br />  8.4.1 创建接口 103<br />  8.4.2 使用类实现接口 104<br />  8.5 小结 105<br />  第 9章 数字处理   106<br />  9.1 数字的不同表现形式 106<br />  9.2 不同数字类型之间的转换 107<br />  9.2.1 输出其他进制函数toString   107<br />  9.2.2 十进制转化函数parseInt 108<br />  9.3 四舍五入 108<br />  9.3.1 四舍五入函数round   109<br />  9.3.2 其他舍入函数 109<br />  9.4 格式化输出 110<br />  9.5 格式化货币数字 111<br />  9.6 生成随机数   112<br />  9.6.1 Math类中生成随机实型函数<br />  5.3.1 random 112<br />  9.6.2   NumberUtilities类中生成随机数<br />  5.3.1 函数random 112<br />  9.7 小结 113<br />  第 10章 日期与时间   114<br />  10.1 获取系统当前日期 114<br />  10.2 获取日期中的特定值 114<br />  10.3 自定义星期名和月份名 115<br />  10.4   格式化输出日期 116<br />  10.5 使用计时器 118<br />  10.6 计算日期特定值的间隔 119<br />  10.7 从字符串中获取日期   120<br />  10.8 小结 121<br />  第 11章 字符串 122<br />  11.1 连接字符串 122<br />  11.1.1 “+”操作符连接字符串   123<br />  11.1.2 “+=”操作符连接字符串 123<br />  11.2 字符串中使用引号 124<br />  11.3 插入空白字符 124<br />  11.4   搜索匹配字符串 125<br />  11.4.1 顺序搜索字符串函数indexOf 125<br />  11.4.2 逆序搜索字符串函数<br />  11.4.2   lastIndexOf 126<br />  11.5 取字符串的子串 126<br />  11.5.1 substr方法 127<br />  11.5.2 substring方法   127<br />  11.5.3 slice方法 128<br />  11.6 字符串转为数组 128<br />  11.7 替换字符串 129<br />  11.7.1   替换字符串函数replace 129<br />  11.7.2 其他替换字符串方法 130<br />  11.8 对字符串中的单字符操作 131<br />  11.9 大小写转换   131<br />  11.10 过滤空白字符 132<br />  11.11 反转字符串 133<br />  11.12 存取ASCII码 134<br />  11.12.1   以ASCII码构造字符串<br />  11.12.1 函数fromCharCode 134<br />  11.12.2 读取单字符的ASCII码<br />  11.12.1   函数charCodeAt 135<br />  11.13 小结 135<br />  第 12章 数组 136<br />  12.1 数组简介 136<br />  12.1.1   数组的分类 136<br />  12.1.2 创建数组的方法 137<br />  12.2 在数组首部和尾部添加元素 138<br />  12.2.1   数组尾部添加新元素函数push 138<br />  12.2.2 使用“[]”操作符在尾部添加<br />  12.2.2 新元素 138<br />  12.2.3   数组首部添加新元素函数<br />  12.2.2 unshift 139<br />  12.3 遍历数组元素 139<br />  12.4 搜索匹配的数组元素   139<br />  12.4.1 findMatchIndex方法 140<br />  12.4.2 findLastMatchIndex方法和<br />  12.2.2   findMatchIndices方法 141<br />  12.5 删除数组元素 141<br />  12.5.1 删除任意数组元素函数splice   141<br />  12.5.2 删除数组首部元素函数shift 142<br />  12.5.3 删除数组尾部元素函数pop 142<br />  12.5.4   删除特定值的数组元素 143<br />  12.6 在数组中插入元素 144<br />  12.7 转换字符串为数组 145<br />  12.8 转换数组为字符串   145<br />  12.9 复制数组 146<br />  12.9.1 concat方法 146<br />  12.9.2 slice方法 147<br />  12.9.3   ArrayUtilities类的duplicate<br />  12.2.2 方法 147<br />  12.10 存储多维数据 148<br />  12.11 数组排序   150<br />  12.11.1 sort方法 150<br />  12.11.2 sortOn方法 152<br />  12.12 实现自定义排序 154<br />  12.13   数组元素的最大值和最小值 155<br />  12.14 比较数组 156<br />  12.15 联合数组 157<br />  12.15.1 创建联合数组   157<br />  12.15.2 访问联合数组元素 158<br />  12.15.3 遍历联合数组 159<br />  12.16 小结 159<br />  第 13章 使用XML   160<br />  13.1 XML概述 160<br />  13.2 创建XML对象 161<br />  13.2.1 使用XML标签创建XML对象 161<br />  13.2.2   使用字符串创建XML对象 162<br />  13.3 XML对象中添加元素 162<br />  13.3.1 将元素名作为属性添加元素 163<br />  13.3.2   使用“[]”操作符添加元素 163<br />  13.3.3 其他添加元素的方法 164<br />  13.4 XML对象中添加元素内容 164<br />  13.4.1   将元素名作为属性添加<br />  12.2.2 元素内容 165<br />  13.4.2 使用XML类中的方法添加<br />  12.2.2 元素内容 165<br />  13.5   XML元素中添加属性 166<br />  13.5.1 使用“@”操作符添加属性 166<br />  13.5.2 使用“[]”操作符添加属性 167<br />  13.6   从XML中读取元素 167<br />  13.7 定位元素 168<br />  13.8 读取元素内容 169<br />  13.9 读取属性值 170<br />  13.9.1   使用“@”操作符读取属性值 170<br />  13.9.2 使用attribute方法读取属性值 171<br />  13.9.3   使用attributes方法读取全部<br />  12.2.2 属性值 171<br />  13.10 删除元素和属性 172<br />  13.11 加载XML文件   173<br />  13.12 小结 174<br />  第三篇 组件篇<br />  第 14章 使用组件构建Flex界面 176<br />  14.1 Flex组件概述   176<br />  14.2 Flex可见组件 177<br />  14.2.1 可见组件的分类 177<br />  14.2.2 使用可见组件构建界面 177<br />  14.3   使用Flex非可见组件 178<br />  14.4 Flex常用组件 179<br />  14.4.1 按钮组件Button 180<br />  14.4.2   下拉框组件ComboBox 181<br />  14.4.3 图像组件Image 182<br />  14.4.4 标签组件Label 182<br />  14.4.5   多行文本组件TextArea 183<br />  14.4.6 输入框组件TextInput 183<br />  14.4.7 文本编辑组件RichTextEditor   184<br />  14.5 小结 184<br />  第 15章 Flex 3.0界面设计实战 185<br />  15.1 登录框实例 185<br />  15.1.1   制作登录框界面 185<br />  15.1.2 使用按钮处理事件 188<br />  15.1.3 制作校验码 189<br />  15.1.4 验证合法用户   191<br />  15.1.5 合法用户进入主程序 192<br />  15.2 菜单导航实例 194<br />  15.2.1 制作菜单 194<br />  15.2.2 设计状态   195<br />  15.2.3 菜单导航 197<br />  15.2.4 制作状态切换时的过渡效果 199<br />  15.3 柱状图实例 201<br />  15.3.1   设计数据集 201<br />  15.3.2 设计柱状图界面及数据绑定 202<br />  15.4 文件目录浏览器实例 204<br />  15.4.1 外观界面设计   205<br />  15.4.2 文件系统组件的路径 207<br />  15.4.3 制作“后退”效果 208<br />  15.5 AIR程序集成网页实例   209<br />  15.5.1 HTML组件集成网页 209<br />  15.5.2 使用JavaScriptObject类型调用<br />  15.5.2 DOM   211<br />  15.5.3 JavaScript与ActionScript 3.0的<br />  15.5.3 交互 212<br />  15.6 文本编辑器实例   216<br />  15.6.1 设计文本编辑器界面 217<br />  15.6.2 选择文件 218<br />  15.6.3 读取文件 219<br />  15.6.4 写文件   220<br />  15.7 组件数据拖曳实例 222<br />  15.8 小结 223<br />  第 16章 自定义效果美化界面 224<br />  16.1 自定义事件效果   224<br />  16.2 Flex 3.0的效果组件 225<br />  16.2.1 模糊效果组件 226<br />  16.2.2 溶解效果组件   226<br />  16.2.3 渐显效果组件 228<br />  16.2.4 发光效果组件 229<br />  16.2.5 移动效果组件 230<br />  16.2.6   改变大小组件 231<br />  16.2.7 旋转效果组件 232<br />  16.2.8 声音效果组件 233<br />  16.2.9 显示顺序组件   235<br />  16.2.10 缩放效果组件 235<br />  16.2.11 组合效果组件 237<br />  16.3 自定义组件界面 238<br />  16.3.1   使用组件属性改变界面 238<br />  16.3.2 使用setStyle方法改变界面 239<br />  16.4 使用Filter滤镜类 240<br />  16.5 小结   241<br />  第 17章 CSS美化界面 242<br />  17.1 CSS简介 242<br />  17.2 样式名 243<br />  17.2.1 默认样式名   243<br />  17.2.2 自定义样式名 243<br />  17.2.3 分组样式名 244<br />  17.3 属性 245<br />  17.3.1 字体（Font）   245<br />  17.3.2 文本（Text） 246<br />  17.3.3 背景（Background） 249<br />  17.3.4   定位（Positioning） 250<br />  17.3.5 尺寸（Dimensions） 251<br />  17.3.6 布局（Layout）   252<br />  17.3.7 外补丁（Margins） 253<br />  17.3.8 边框（Borders） 254<br />  17.3.9 内补丁（Paddings）   256<br />  17.3.10 列表（Lists） 257<br />  17.3.11 表格（Table） 258<br />  17.3.12 滚动条（Scrollbar）   258<br />  17.3.13 打印（Printing） 259<br />  17.3.14 声音（Aural） 260<br />  17.4 单位   262<br />  17.4.1 长度（Length） 262<br />  17.4.2 颜色（Color） 263<br />  17.4.3 角度（Angle）   264<br />  17.4.4 时间（Time）和频率<br />  17.4.4 （Frequency） 264<br />  17.5 规则 264<br />  17.5.1   导入外部样式表@import 264<br />  17.5.2 指定字符集@charset 265<br />  17.5.3 导入外部字体@font-face   265<br />  17.5.4 指定设备@media 265<br />  17.6 静态滤镜 266<br />  17.6.1 色彩层滤镜（Gradient）   266<br />  17.6.2 边界图片滤镜<br />  17.6.2 （AlphaImageLoader） 267<br />  17.6.3 透明度滤镜（Alpha）   268<br />  17.6.4 图片处理滤镜（BasicImage） 269<br />  17.6.5 模糊滤镜（Blur） 270<br />  17.6.6   阴影滤镜（DropShadow） 271<br />  17.6.7 浮雕滤镜（Emboss） 272<br />  17.6.8 发光滤镜（Glow）   273<br />  17.6.9 矩阵遮罩（Matrix） 274<br />  17.6.10 运动模糊滤镜（MotionBlur） 276<br />  17.6.11   波纹滤镜（Wave） 277<br />  17.6.12 X光滤镜（Xray） 278<br />  17.6.13 反相滤镜（Invert） 278<br />  17.7   转换滤镜 279<br />  17.7.1 百叶窗效果滤镜（Blinds） 279<br />  17.7.2 国际象棋棋盘效果滤镜<br />  17.7.2   （CheckerBoard） 280<br />  17.7.3 渐隐效果滤镜（Fade） 281<br />  17.7.4 滚动渐隐效果滤镜<br />  17.7.4   （GradientWipe） 282<br />  17.7.5 对角扩张效果滤镜（Insert） 283<br />  17.7.6 放射状擦除效果滤镜<br />  17.7.4   （RadialWipe） 284<br />  17.7.7 随机线条效果滤镜<br />  17.7.4 （RandomBars） 285<br />  17.7.8   随机像素溶解效果滤镜<br />  17.7.4 （RandomDissolve） 286<br />  17.7.9 拉伸（缩）变形效果滤镜<br />  17.7.4   （Stretch） 287<br />  17.7.10 风车叶轮旋转效果滤镜<br />  17.7.10 （Wheel） 288<br />  17.7.11   擦地板的效果滤镜（Zigzag） 288<br />  17.8 使用组件定义CSS 289<br />  17.8.1 组件内部定义CSS 290<br />  17.8.2   组件调用外部CSS 290<br />  17.8.3 两种CSS定义方式的比较 291<br />  17.9   Flex2StyleExplorer工具辅助设计<br />  17.9 CSS样式 291<br />  17.10 Flex组件应用CSS样式 294<br />  17.11   运行时动态加载CSS样式 295<br />  17.11.1 调用SWF样式文件 297<br />  17.11.2 撤销SWF样式文件 297<br />  17.11.3   按钮控制应用样式 298<br />  17.11.4 完成剩余代码 298<br />  17.12 小结 301<br />  第 18章 Flex美化应用 302<br />  18.1   自定义字体 302<br />  18.1.1 自定义字体概述 302<br />  18.1.2 使用Flex支持的系统字体 303<br />  18.1.3   使用Flex不支持的系统字体 304<br />  18.2 自定义提示文本 305<br />  18.3 自定义光标 307<br />  18.4 自定义AIR程序窗口外观   309<br />  18.5 苹果风格界面实例 314<br />  18.5.1 组件设计 314<br />  18.5.2 CSS美化组件界面 319<br />  18.5.3   ApplicationControlBar组件样式 320<br />  18.5.4 Application组件样式 320<br />  18.5.5   MenuBar组件样式 321<br />  18.5.6 Panel组件样式 321<br />  18.5.7 自定义“panelTitle”样式   322<br />  18.5.8 TextInput组件样式 323<br />  18.5.9 Button组件样式 323<br />  18.5.10   自定义“blueButton”样式 324<br />  18.5.11 Accordion组件样式 324<br />  18.5.12 NumericStepper组件样式   325<br />  18.5.13 CheckBox组件样式 325<br />  18.5.14 RadioButton组件样式 326<br />  18.5.15   ComboBox组件样式 327<br />  18.5.16 TabNavigator组件样式 327<br />  18.5.17 自定义“selectedTab”样式   328<br />  18.5.18 Tab组件样式 329<br />  18.5.19 List组件样式 329<br />  18.5.20 DataGrid组件样式   330<br />  18.5.21 DateChooser组件样式 331<br />  18.6 Vista风格界面实例 332<br />  18.6.1 组件设计   332<br />  18.6.2 CSS美化组件界面 336<br />  18.6.3 全局样式global 337<br />  18.6.4   AccordionHeader组件样式 337<br />  18.6.5 Application组件样式 339<br />  18.6.6 Button组件样式   339<br />  18.6.7 ButtonBar组件样式 341<br />  18.6.8 ColorPicker组件样式 346<br />  18.6.9   ComboBox组件样式 347<br />  18.6.10 DataGrid组件样式 348<br />  18.6.11 DateChooser组件样式   349<br />  18.6.12 ProgressBar组件样式 350<br />  18.6.13 Image组件样式 350<br />  18.6.14   MenuBar组件样式 351<br />  18.6.15 RadioButton组件样式 351<br />  18.6.16 CheckBox组件样式   352<br />  18.6.17 HSlider组件样式 352<br />  18.6.18 TitleWindow组件样式 353<br />  18.6.19 调用自定义窗体   354<br />  18.6.20 调用“style.css”文件 354<br />  18.7 小结 354<br />  第四篇 数据篇<br />  第 19章 Flex中的数据处理   356<br />  19.1 数据绑定 356<br />  19.1.1 简单绑定方式 356<br />  19.1.2 使用组件绑定<br />  19.1.2 数据   357<br />  19.2 复杂数据的存储 359<br />  19.2.1 使用组件存储数据 359<br />  19.2.2 使用组件存储数据 361<br />  19.2.3   使用组件存储数据 362<br />  19.3 数据验证 363<br />  19.3.1 数据验证组件概述 363<br />  19.3.2 如何使用数据验证组件   364<br />  19.3.3 验证触发方式 365<br />  19.3.4 验证失败处理 368<br />  19.3.5 自定义验证组件 369<br />  19.3.6   数据验证应用实例 372<br />  19.4 数据格式化 377<br />  19.4.1 格式化组件概述 378<br />  19.4.2 货币格式化组件<br />  19.4.2   378<br />  19.4.3 日期格式化组件<br />  19.4.2 379<br />  19.4.4 数字格式化组件<br />  19.4.2 381<br />  19.4.5   电话格式化组件<br />  19.4.2 382<br />  19.4.6 邮编格式化组件<br />  19.4.2 383<br />  19.5 小结 383<br />  第 20章   使用正则表达式匹配字符串<br />  数据 384<br />  20.1 正则表达式概述 384<br />  20.2 正则表达式的语法 384<br />  20.2.1 元字符   385<br />  20.2.2 转义字符 385<br />  20.2.3 限定符 385<br />  20.2.4 字符集合 386<br />  20.2.5 反义   386<br />  20.2.6 多规则 387<br />  20.2.7 子表达式 388<br />  20.3 使用Regex Tester工具测试正则<br />  20.3   表达式 388<br />  20.4 Flex 3.0中使用正则表达式 389<br />  20.4.1 使用RegExp类定义正则表达式 389<br />  20.4.2   使用RegExp类匹配数据 390<br />  20.4.3 Flex中使用正则表达式实例 391<br />  20.5 小结 395<br />  第 21章 数据传输与交互   396<br />  21.1 数据传输的方式 396<br />  21.1.1 内部数据传输 396<br />  21.1.2 文件流方式传输 399<br />  21.1.3   XML方式传输 401<br />  21.1.4 其他方式传输 403<br />  21.2 使用组件与<br />  21.2 HTTP程序交互 403<br />  21.3 组件实例   404<br />  21.3.1 编写ASP.NET程序 405<br />  21.3.2 创建虚拟目录 407<br />  21.3.3 编写Flex程序   409<br />  21.4 使用组件<br />  21.4 与WebService程序交互 411<br />  21.4.1 WebService概述   412<br />  21.4.2 如何使用组件 412<br />  21.5 组件实例 414<br />  21.5.1 创建数据库 414<br />  21.5.2   编写WebService 416<br />  21.5.3 编写Flex程序 419<br />  21.6 使用Fluorine网关与ASP.NET类<br />  21.6 交互   421<br />  21.6.1 Fluorine简介 421<br />  21.6.2 Fluorine的下载与安装 422<br />  21.6.3   第三方组件RemoteObjectAMF0<br />  21.6.3 的使用方法 423<br />  21.6.4 Fluorine实例 425<br />  21.7 小结   432<br />  第五篇 扩展篇<br />  第 22章 Cairngorm开发框架 434<br />  22.1 Cairngorm简介 434<br />  22.2 Flex   3.0中如何添加Cairngorm<br />  22.2 框架 435<br />  22.3 Cairngorm框架中的基础类 436<br />  22.3.1 类的文件组织结构   436<br />  22.3.2 处理正常或异常结果的<br />  22.3.2 Responder类 437<br />  22.3.3 查找服务的ServiceLocator类   437<br />  22.3.4 处理事件的Command类 438<br />  22.3.5 创建新事件的<br />  22.3.5 CairngormEvent类   438<br />  22.3.6 管理事件的<br />  22.3.6 CairngormEventDispatcher类 439<br />  22.3.7   监听事件的FrontController类 441<br />  22.3.8 存储数据模型的<br />  22.3.6 ModelLocator类   442<br />  22.3.9 辅助操作视图的ViewHelper类 442<br />  22.3.10 查找视图的ViewLocator类 444<br />  22.3.11   定义数据模型的<br />  22...316 ValueObject类 446<br />  22.4 Cairngorm框架的运行原理 446<br />  22.4.1   自定义事件（Cairngorm<br />  22.4.1 Event类） 446<br />  22.4.2 自定义命令（Command类） 447<br />  22.4.3   前台控制器（FrontController类）<br />  22.4.3 监听事件 448<br />  22.4.4   在服务定位器（ServiceLocator类）<br />  22.4.4 中寻找服务 449<br />  22.4.5   在模型定位器（ModelLocator类）<br />  22.4.5 中存取数据 450<br />  22.4.6 使用ViewHelper类修改视图   451<br />  22.4.7 使用ValueObject类自定义数据<br />  22.4.7 模型 452<br />  22.5 Cairngorm实例   452<br />  22.6 小结 466<br />  第 23章 Flex 3.0新特性的应用 467<br />  23.1 加载PDF文件 467<br />  23.1.1   加载PDF文件前的准备 467<br />  23.1.2 使用HTMLControl类加载<br />  23.1.2 PDF文件 467<br />  23.1.3   使用HTMLPDFCapability类检测<br />  23.1.3 Adobe Reader版本 468<br />  23.1.4 加载PDF文件实例   468<br />  23.2 使用本地SQL数据库 470<br />  23.2.1 使用Select语句读取数据 470<br />  23.2.2 使用Insert语句添加数据   471<br />  23.2.3 使用Update语句修改数据 471<br />  23.2.4 使用Delete语句删除数据 472<br />  23.2.5   使用SQLConnection类连接<br />  23.2.5 数据库 472<br />  23.2.6 使用SQLStatement类执行SQL<br />  23.2.6 语句   473<br />  23.2.7 操作本地SQL数据库实例 474<br />  23.3 升级AIR应用程序 480<br />  23.3.1 升级前的准备   481<br />  23.3.2 检查版本信息 481<br />  23.3.3 使用FileStream类下载最新<br />  23.3.3 版本 482<br />  23.3.4   使用Updater类升级AIR<br />  23.3.4 应用程序 483<br />  23.3.5 升级AIR应用程序实例 483<br />  23.4 Flex   3.0中使用Ajax技术 487<br />  23.4.1 Ajax技术简介 488<br />  23.4.2 使用组件调用<br />  23.4.2 Ajax技术   488<br />  23.4.3 Flex应用程序结合Ajax<br />  23.4.3 技术实例 489<br />  23.5 使用Flex-Ajax   Bridge技术控制<br />  23.5 Flex应用程序 496<br />  23.5.1 Flex-Ajax Bridge技术简介 497<br />  23.5.2   Flex-Ajax Bridge技术的<br />  23.5.2 运行原理 497<br />  23.5.3 使用getCompenentID方法<br />  23.5.3   获取组件 500<br />  23.5.4 使用getPropertyName方法获取<br />  23.5.4 属性值 501<br />  23.5.5   使用setPropertyName方法设置<br />  23.5.5 属性值 501<br />  23.5.6 为组件添加监听事件 502<br />  23.5.7   调用Flex程序中的函数 502<br />  23.5.8 Flex-Ajax Bridge技术控制Flex<br />  23.5.8 程序实例 503<br />  23.6   小结 506<br />  第六篇 实例篇<br />  第 24章 FLV播放器 508<br />  24.1 前期准备 508<br />  24.1.1 组织文件结构   508<br />  24.1.2 导入Cairngorm框架 508<br />  <br />  24.2 使用FlvModel类存储数据、状态及<br />  24.2 资源   509<br />  24.3 使用FlvControl类监听事件 510<br />  24.4 创建OpenVideoEvent事件 511<br />  24.5   创建OpenVideoCommand命令 512<br />  24.6 使用Utils类格式化时间 513<br />  24.7   使用FlvPlayViewHelper类修改<br />  24.7 MXML组件 514<br />  24.8 编写“FlvPlay.mxml”主程序   516<br />  24.8.1 设计外观模型 516<br />  24.8.2 实现菜单功能 518<br />  24.8.3 VideoDisplay组件说明   519<br />  24.8.4 实现“播放/暂停”功能 521<br />  24.8.5 实现“停止”功能 522<br />  24.8.6 实现“静音”功能   522<br />  24.8.7 实现“全屏/退出全屏”功能 522<br />  24.8.8 拖曳滑动条改变播放进度 523<br />  24.8.9 实现键盘快捷键功能   524<br />  24.8.10 完成“FlvPlay.mxml”主程序的<br />  24.8.10 剩余代码 525<br />  24.9 小结 533<br />  第 25章   经典实例CairngormStore<br />  第 25章 的分析 534<br />  25.1 CairngormStore实例简介 534<br />  25.2   如何运行CairngormStore实例 535<br />  25.2.1 架设Java运行平台 535<br />  25.2.2 架设AMF网关LiveCycle   Data<br />  25.2.2 Services 539<br />  25.2.3 编译运行前的准备 544<br />  25.2.4 编译CairngormStore实例   545<br />  25.3 CairngormStore实例的代码分析 547<br />  25.3.1 使用ProductVO类建立商品<br />  25.2.2 数据模型   547<br />  25.3.2 使用ShoppingCartElement类<br />  25.2.2 建立购物条目数据模型 549<br />  25.3.3   使用ShoppingCart类建立<br />  25.2.2 购物车数据模型 550<br />  <br />  25.3.4   使用ShopModelLocator类<br />  25.2.2 建立应用程序数据模型 552<br />  25.3.5   使用ShopController类监听<br />  25.2.2 事件 555<br />  25.3.6 在ServiceLocator类中定义服务   557<br />  25.3.7 创建自定义事件 559<br />  25.3.8 创建自定义命令 560<br />  25.3.9 视图外观分析 563<br />  25.4   如何添加和调用新服务 567<br />  25.5 小结 568<br />  第 26章 视频分享网站 569<br />  26.1 系统概述 569<br />  26.1.1   系统架构 569<br />  26.1.2 系统功能模块设计 569<br />  26.2 系统设计 570<br />  26.2.1 系统工作流程 571<br />  26.2.2   功能模块的工作流程 571<br />  26.3 数据库设计 574<br />  26.3.1 数据库总体设计 574<br />  26.3.2 数据表设计   574<br />  26.3.3 使用查询分析器创建数据库<br />  25.2.2 和数据表 576<br />  26.4 配置开发环境 578<br />  26.4.1   安装和升级SQL Server 2000<br />  25.2.2 数据库 578<br />  26.4.2 安装和配置JDBC 584<br />  26.4.3   安装和配置Java开发平台<br />  25.2.2 eclipse 585<br />  26.4.4 其他注意事项 586<br />  26.5 服务器端代码分析   587<br />  26.5.1 服务器端代码概述 587<br />  26.5.2 UserCompl类 588<br />  26.5.3 VideoCompl类   591<br />  26.5.4 CommentCompl类 597<br />  26.5.5 其他类 600<br />  26.6 接口设计代码分析 601<br />  26.6.1   接口概述 602<br />  26.6.2 remoting-config.xml分析 602<br />  26.6.3 Services.mxml分析   603<br />  26.7 应用程序的总体框架 604<br />  26.8 主页显示模块 606<br />  26.9 用户登录模块 609<br />  26.10 播放视频模块   611<br />  26.11 上传视频模块 613<br />  26.12 用户管理模块 617<br />  26.13 超级管理员管理模块 621<br />  26.14 评论模块   623<br />  26.15 外观样式分析 623<br />  26.16 小结 626<br />  附录 A 627</p>]]></description><category>开源文章</category><comments>http://www.luoye.org/html/read_94.html</comments></item><item><title>AS3 库资源 很多非常有用的类库</title><author>LuoYe</author><link>http://www.luoye.org/html/read_93.html</link><pubDate>Sun, 16 Aug 2009 16:00:00 +0000</pubDate><description><![CDATA[<p>下面是非常有用的类库，找到他们的时候我兴奋的不得了<br />  APIs、Libs、Components</p><p>1、as3ebaylib<br />  <a href="http://code.google.com/p/as3ebaylib/" target="_blank" rel="external">http://code.google.com/p/as3ebaylib/</a></p><p>2、as3youtubelib<br />    <a href="http://code.google.com/p/as3youtubelib/" target="_blank" rel="external">http://code.google.com/p/as3youtubelib/</a><span id="more-333"></span></p><p>3、as3flickrlib<br />  <a href="http://code.google.com/p/as3flickrlib/" target="_blank" rel="external">http://code.google.com/p/as3flickrlib/</a></p><p>4、Yahoo ASTRA Flash Components<br />  <a href="http://developer.yahoo.com/flash/astra-flash/" target="_blank" rel="external">http://developer.yahoo.com/flash/astra-flash/</a></p><p>5、facebook-as3<br />  <a href="http://code.google.com/p/facebook-as3/" target="_blank" rel="external">http://code.google.com/p/facebook-as3/</a></p><p>6、as3awss3lib<br />  <a href="http://code.google.com/p/as3awss3lib/" target="_blank" rel="external">http://code.google.com/p/as3awss3lib/</a></p><p>7、Adobe ActionScript 3:resources:apis:libraries   （官方，包括corelib、FlexUnit、Flickr、Mappr、RSS and Atom libraries、Odeo、YouTube）<br />  <a href="http://labs.adobe.com/wiki/index.php/ActionScript_3:resources:apis:libraries" target="_blank" rel="external">http://labs.adobe.com/wiki/index.php/ActionScript_3:resources:apis:libraries</a></p><p>8、Tweener   用于过渡与切换的一组动画库<br />  <a href="http://code.google.com/p/tweener/" target="_blank" rel="external">http://code.google.com/p/tweener/</a></p><p>9、uicomponents-as3    一组轻量级的AS3 UI组件库<br />  <a href="http://code.google.com/p/uicomponents-as3/" target="_blank" rel="external">http://code.google.com/p/uicomponents-as3/</a></p><p>10、as3ds    AS3的数据结构实现<br />  <a href="http://code.google.com/p/as3ds/" target="_blank" rel="external">http://code.google.com/p/as3ds/</a></p><p>11、mecheye-as3-libraries    一组主要用于Flash 游戏开发的AS3库<br />  <a href="http://code.google.com/p/mecheye-as3-libraries/" target="_blank" rel="external">http://code.google.com/p/mecheye-as3-libraries/</a></p><p>12、XIFF   一套XMPP协议的AS3实现<br />  <a href="http://svn.igniterealtime.org/svn/repos/xiff/branches/xiff_as3_flexlib_beta1/" target="_blank" rel="external">http://svn.igniterealtime.org/svn/repos/xiff/branches/xiff_as3_flexlib_beta1/</a></p><p>13、FZip   一套AS3库，可用作对ZIP压缩文件的载入、修改与创建<br />  <a href="http://codeazur.com.br/lab/fzip/" target="_blank" rel="external">http://codeazur.com.br/lab/fzip/</a></p><p>14、FlexLib   一套开源的Flex界面组件库<br />  <a href="http://code.google.com/p/flexlib/" target="_blank" rel="external">http://code.google.com/p/flexlib/</a></p><p>15、AnimatedGIfLoader Flex Component     可载入GIF的Flex组件<br />  <a href="http://dougmccune.com/blog/animatedgifloader-flex-component/" target="_blank" rel="external">http://dougmccune.com/blog/animatedgifloader-flex-component/</a></p><p>16、goplayground    一套轻量级的，可用创建属于你自己的AS3 动画工具的库<br />  <a href="http://code.google.com/p/goplayground/" target="_blank" rel="external">http://code.google.com/p/goplayground/</a></p><p>17、AlivePDF   开源的用于PDF创建的AS3库<br />  <a href="http://www.alivepdf.org/" target="_blank" rel="external">http://www.alivepdf.org/</a></p><p>18、jwopitz-lib   一组开源的Flex用户界面组件<br />  <a href="http://code.google.com/p/jwopitz-lib/" target="_blank" rel="external">http://code.google.com/p/jwopitz-lib/</a></p><p>19、as3crypto   AS3实现的一套加密库，包括多种加密算法<br />  <a href="http://code.google.com/p/as3crypto/" target="_blank" rel="external">http://code.google.com/p/as3crypto/</a></p><p>20、flare    一套强大的可视化交互的AS3类库<br />  <a href="http://flare.prefuse.org/" target="_blank" rel="external">http://flare.prefuse.org/</a></p><p>21、SWFAddress    一小而强大的库，可以为Flash和Ajax提供深链接的功能<br />  <a href="http://www.asual.com/swfaddress/" target="_blank" rel="external">http://www.asual.com/swfaddress/</a></p><p>22、SWFObject    用于嵌入Flash，Adobe官方也认可了<br />  <a href="http://code.google.com/p/swfobject/" target="_blank" rel="external">http://code.google.com/p/swfobject/</a></p><p>23、ulse Particle System 一套开源的强大的AS3动态粒子系统<br />    <a href="http://code.google.com/p/pulse-particle/" target="_blank" rel="external">http://code.google.com/p/pulse-particle/</a><br />  <a href="http://www.rogue-development.com/pulseParticles.html" target="_blank" rel="external">http://www.rogue-development.com/pulseParticles.html</a></p><p>24、SpringGraph Flex Component<br />  <a href="http://mark-shepherd.com/blog/springgraph-flex-component/" target="_blank" rel="external">http://mark-shepherd.com/blog/springgraph-flex-component/</a></p><p>25、GoASAP    AS3动画库<br />    <a href="http://code.google.com/p/goasap/" target="_blank" rel="external">http://code.google.com/p/goasap/</a><br />  <a href="http://www.goasap.org/index.html" target="_blank" rel="external">http://www.goasap.org/index.html</a></p><p>26、asaplibrary   一套开源的Flash Actionscript3.0 RIA库<br />    <a href="http://code.google.com/p/asaplibrary/" target="_blank" rel="external">http://code.google.com/p/asaplibrary/</a><br />  <a href="http://asaplibrary.org/" target="_blank" rel="external">http://asaplibrary.org/</a><br />  <a href="http://asapframework.org/" target="_blank" rel="external">http://asapframework.org</a></p><p>27、as3mathlib 开源Flex/Actionscript数学库<br />  <a href="http://code.google.com/p/as3mathlib/" target="_blank" rel="external">http://code.google.com/p/as3mathlib/</a></p><p>28、as3corelib 包含一些基础功能AS3库<br />  <a href="http://code.google.com/p/as3corelib/" target="_blank" rel="external">http://code.google.com/p/as3corelib/</a></p><p>29、minimalcomps 一组AS3 UI组件<br />  <a href="http://www.bit-101.com/minimalcomps/" target="_blank" rel="external">http://www.bit-101.com/minimalcomps/</a></p><p>30、as3gif<br />  <a href="http://code.google.com/p/as3gif/" target="_blank" rel="external">http://code.google.com/p/as3gif/</a></p><p>31、queueloader-as3     一组AS3库，用来进行资源序列载入及监测<br />  <a href="http://code.google.com/p/queueloader-as3/" target="_blank" rel="external">http://code.google.com/p/queueloader-as3/</a></p><p>32、TweenMax (AS3)<br />  <a href="http://blog.greensock.com/tweenmaxas3/" target="_blank" rel="external">http://blog.greensock.com/tweenmaxas3/</a></p><p>33、Atellis Reflection Component             一款Flex反射效果组件<br />  <a href="http://labs.atellis.com/2007/07/11/atellis-reflection-component/" target="_blank" rel="external">http://labs.atellis.com/2007/07/11/atellis-reflection-component/</a></p><p>34、AS3Eval    简单来说，就是用AS3实现的AS3编译器<br />  <a href="http://eval.hurlant.com/" target="_blank" rel="external">http://eval.hurlant.com/</a></p><p>35、 ByteArray的组件、库合集，包括liquid components、mousegesture、ASZip、GIF Player、GIF   Animation Encoder、AlivePDF、Live JPEG Encoder、ScaleBitmap等<br />  <a href="http://www.bytearray.org/?page_id=82" target="_blank" rel="external">http://www.bytearray.org/?page_id=82</a></p><p>36、AS3C    针对AVM2虚拟机，用C#写的字节码编译器<br />  <a href="http://code.google.com/p/as3c/" target="_blank" rel="external">http://code.google.com/p/as3c/</a></p><p>37、as3httpclientlib   as3实现的http客户端<br />  <a href="http://code.google.com/p/as3httpclientlib/" target="_blank" rel="external">http://code.google.com/p/as3httpclientlib/</a></p><p>38、as3ui  一组常规的as3　ui界面库<br />  <a href="http://code.google.com/p/as3ui/" target="_blank" rel="external">http://code.google.com/p/as3ui/</a></p><p>39、as3xls　让你在flex中可以读写Excel文件<br />  <a href="http://code.google.com/p/as3xls/" target="_blank" rel="external">http://code.google.com/p/as3xls/</a></p><p>40、as3flexdb 让你的flex程序可以连接到MySQL服务器，主要是使用AMFPHP来访问PHP服务器<br />    <a href="http://code.google.com/p/as3flexdb/" target="_blank" rel="external">http://code.google.com/p/as3flexdb/</a><br />  这一是一篇详细使用介绍的教程<br />  <a href="http://itutorials.ro/viewtopic.php?f=9" target="_blank" rel="external">http://itutorials.ro/viewtopic.php?f=9</a>&amp;t=7</p><p>41、vivisectingmedia-as3 　一组AS3/Flex实用库，是作者在实践中总结出来的<br />  <a href="http://code.google.com/p/vivisectingmedia-as3/" target="_blank" rel="external">http://code.google.com/p/vivisectingmedia-as3/</a></p><p><strong>Actionscript 3.0   Class</strong></p><p>1、fZip   此类可允许你载入标准的zip文件并提取里面包含的文件<br />  <a href="http://wahlers.com.br/claus/blog/zip-it-up/" target="_blank" rel="external">http://wahlers.com.br/claus/blog/zip-it-up/</a></p><p>2、AS3: Layout class for Flash CS3    一组用作布局的类<br />  <a href="http://www.senocular.com/?id=2.8" target="_blank" rel="external">http://www.senocular.com/?id=2.8</a></p><p>3、CSSLoader    该类允许Flex应用程序在运行时载入CSS<br />  <a href="http://www.rubenswieringa.com/blog/cssloader" target="_blank" rel="external">http://www.rubenswieringa.com/blog/cssloader</a></p><p>4、AS3: QueryString     一个单例类，用来获取URL地址后所带参数值对<br />    <a href="http://evolve.reintroducing.com/2008/07/03/as3/as3-querystring/" target="_blank" rel="external">http://evolve.reintroducing.com/2008/07/03/as3/as3-querystring/</a>#more-141</p><p>5、ActionScript 3 Contextual Menu Manager Class        AS3关联菜单管理类<br />  <a href="http://www.blog.noponies.com/archives/103" target="_blank" rel="external">http://www.blog.noponies.com/archives/103</a></p><p><strong>2D &amp; 3D Engine</strong></p><p>1、APE (Actionscript Physics Engine)  物理引擎<br />  APE   前身是as2版本的Flade，呼声很高，优点就是清晰简单，一共没有几个类：），目前版本alpha 0.45 ，有API文档和示例，教程有一篇quick   start ，在Google Group上有一个论坛可以讨论。svn上一直在更新目前svn上的版本为0.5a</p><p><a href="http://www.cove.org/ape/" target="_blank" rel="external">http://www.cove.org/ape/</a></p><p>2、Away3D<br />  <a href="http://code.google.com/p/away3d/" target="_blank" rel="external">http://code.google.com/p/away3d/</a></p><p>3、Papervision3D<br />  <a href="http://code.google.com/p/papervision3d/" target="_blank" rel="external">http://code.google.com/p/papervision3d/</a></p><p>4、Sandy    开源3D库<br />  <a href="http://www.flashsandy.org/versions/3.0" target="_blank" rel="external">http://www.flashsandy.org/versions/3.0</a></p><p>5、FORM  一套AS3完成的用于2D刚性物体的物理引擎<br />  <a href="http://code.google.com/p/foam-as3/" target="_blank" rel="external">http://code.google.com/p/foam-as3/</a></p><p>6、Five3D   基于矢量的Flash 3D 交互动画创建<br />  <a href="http://five3d.mathieu-badimon.com/" target="_blank" rel="external">http://five3d.mathieu-badimon.com/</a></p><p>7、Flade (Flash Dynamics Engine)   一套开源的2D物理引擎，AS2实现<br />  <a href="http://www.cove.org/flade/" target="_blank" rel="external">http://www.cove.org/flade/</a></p><p>8、Box2DFlashAS3     2D物理引擎，AS3实现，基于强大的Box2D C++物理库<br />  <a href="http://box2dflash.sourceforge.net/" target="_blank" rel="external">http://box2dflash.sourceforge.net/</a></p><p>9、Paradox   基于Flash的第一称3D引擎<br />  <a href="http://animasinteractive.com/propaganda/" target="_blank" rel="external">http://animasinteractive.com/propaganda/</a></p><p>10、ND3D AS3 3D Engine 　一款简单的AS3开源3D引擎，编译后的引擎大小仅约10K<br />    <a href="http://code.google.com/p/nd3d/" target="_blank" rel="external">http://code.google.com/p/nd3d/</a><br />  <a href="http://www.nulldesign.de/nd3d-as3-3d-engine/" target="_blank" rel="external">http://www.nulldesign.de/nd3d-as3-3d-engine/</a></p><p>11、motor2  基于Box2d的AS3刚体引擎,也是2D的.<br />  作者就是 AS3数据结构的作者，2007年最后一天发布<br />  作者主页：<a href="http://lab.polygonal.de/motor_physics/" target="_blank" rel="external">http://lab.polygonal.de/motor_physics/</a><br />  代码：<a href="http://code.google.com/p/motor2/" target="_blank" rel="external">http://code.google.com/p/motor2/</a></p><p>12、WOW-Engine  法国人写的，基于Sandy library的算法 3D物理引擎<br />  <a href="http://seraf.mediabox.fr/wow-engine/as3-3d-physics-engine-wow-engine/" target="_blank" rel="external">http://seraf.mediabox.fr/wow-engine/as3-3d-physics-engine-wow-engine/</a></p><p><strong>FrameWorks</strong></p><p>1、Cairngorm   Adobe官方出的Flex框架<br />  <a href="http://labs.adobe.com/wiki/index.php/Cairngorm" target="_blank" rel="external">http://labs.adobe.com/wiki/index.php/Cairngorm</a></p><p>2、PureMVC   纯AS3框架，也有其它语言的实现<br />  <a href="http://www.puremvc.org/" target="_blank" rel="external">http://www.puremvc.org/</a></p><p>3、ASWing AS3  一套开源的AS3 GUI框架<br />  <a href="http://www.aswing.org/" target="_blank" rel="external">http://www.aswing.org/</a></p><p>4、EasyMVC  由事件驱动的MVC框架<br />  <a href="http://projects.simb.net/easyMVC/" target="_blank" rel="external">http://projects.simb.net/easyMVC/</a></p><p>5、Mate 基于Tag及事件驱动的Flex框架<br />  <a href="http://mate.asfusion.com/" target="_blank" rel="external">http://mate.asfusion.com/</a></p><p>6、ARP    基于模式（Pattern）的RIA框架，Flash平台，支持AS2和AS3<br />  <a href="http://osflash.org/projects/arp" target="_blank" rel="external">http://osflash.org/projects/arp</a></p><p>7、Gaia  开源的Flash前端框架，支持AS2和AS3，用于快速开发<br />  <a href="http://www.gaiaflashframework.com/" target="_blank" rel="external">http://www.gaiaflashframework.com/</a></p><p>8、flest  Actionscript3.0/Flex应用程序框架，用来开发企业级的RIA<br />  <a href="http://code.google.com/p/flest/" target="_blank" rel="external">http://code.google.com/p/flest/</a></p><p>9、Gugga     Flash Framework    更新至AS3<br />  <a href="http://www.gugga.com/flashblog/" target="_blank" rel="external">http://www.gugga.com/flashblog/</a></p><p>10、Prana 另一个提供了IOC反转控制的框架，类似著名的Spring框架<br />  <a href="http://www.pranaframework.org/" target="_blank" rel="external">http://www.pranaframework.org/</a></p><p>11、OpenFlux   开源的Flex组件框架，让开发Flex组件更加快速容易<br />  <a href="http://code.google.com/p/openflux/" target="_blank" rel="external">http://code.google.com/p/openflux/</a></p><p>12、Degrafa      声明式的Flex图形框架，允许以MXML标签的方式绘制图形、创建皮肤，还包括对CSS的支持<br />  <a href="http://code.google.com/p/degrafa/" target="_blank" rel="external">http://code.google.com/p/degrafa/</a></p><p>13、FlexMVCs   针对AS3和Flex的应用程序框架，基于PureMVC，作了些修正和精简<br />  <a href="http://code.google.com/p/flexmvcs/" target="_blank" rel="external">http://code.google.com/p/flexmvcs/</a></p><p><strong>Flash &amp; Flex   Tools、Servers</strong></p><p>1、FlexUnit     Flex/Actionscript3.0单元测试框架<br />  <a href="http://code.google.com/p/as3flexunitlib/" target="_blank" rel="external">http://code.google.com/p/as3flexunitlib/</a></p><p>2、Visual FlexUnit 增强的FlexUnit，支持“可视化断言”<br />  <a href="http://code.google.com/p/visualflexunit/" target="_blank" rel="external">http://code.google.com/p/visualflexunit/</a></p><p>3、RED bug      debug调试控制器，让Flash、Flex、AIR应用程序更加容易<br />  <a href="http://www.realeyesmedia.com/redbug/" target="_blank" rel="external">http://www.realeyesmedia.com/redbug/</a></p><p>4、reflexutil 可在运行时对Flex组件进行调试<br />  <a href="http://code.google.com/p/reflexutil/" target="_blank" rel="external">http://code.google.com/p/reflexutil/</a></p><p>5、FxSpy   当Flex应用程序运行时可以检测和动态的改变可视化组件属性值<br />  <a href="http://code.google.com/p/fxspy/" target="_blank" rel="external">http://code.google.com/p/fxspy/</a></p><p>6、ThunderBolt 基于Firefox的Firebug插件的日志扩展，支持AS2及AS3<br />  <a href="http://code.google.com/p/flash-thunderbolt/" target="_blank" rel="external">http://code.google.com/p/flash-thunderbolt/</a></p><p>7、FlashTracer Firefox扩展，可以以侧栏的方式将Flash中trace()的结果显示</p><p>8、RIALogger　另一款Flex/AIR的Debug工具<br />  <a href="http://renaun.com/blog/flex-components/rialogger/" target="_blank" rel="external">http://renaun.com/blog/flex-components/rialogger/</a></p><p>9、Alcon 一款轻量级的AS2及AS3的Debug工具，AIR方式将Debug信息展示出来<br />  <a href="http://blog.hexagonstar.com/alcon/" target="_blank" rel="external">http://blog.hexagonstar.com/alcon/</a></p><p>10、GDS (Granite Data Services) 开源，提供了Adobe LiveCycle Data   Services类似功能的服务器<br />  <a href="http://www.graniteds.org/" target="_blank" rel="external">http://www.graniteds.org/</a></p><p><strong>Flex   Explorers  （大部分为Flex2版本，但同样适用于Flex3）</strong></p><p>1、Flex3 Component Explorer   Flex各类组件示例<br />  <a href="http://examples.adobe.com/flex3/componentexplorer/explorer.html" target="_blank" rel="external">http://examples.adobe.com/flex3/componentexplorer/explorer.html</a></p><p>2、Resize ManagerFX Explorer （此为商业作品，要收费的）<br />  <a href="http://www.teotigraphix.com/explorers/ResizeManagerFX/ResizeManagerFXExplorer.html" target="_blank" rel="external">http://www.teotigraphix.com/explorers/ResizeManagerFX/ResizeManagerFXExplorer.html</a></p><p>3、Flex3 Style Explorer<br />  <a href="http://examples.adobe.com/flex3/consulting/styleexplorer/Flex3StyleExplorer.html" target="_blank" rel="external">http://examples.adobe.com/flex3/consulting/styleexplorer/Flex3StyleExplorer.html</a></p><p>4、Flex2 Style Explorer（添加了Kuler功能）Flex UI组件风格定制并可输出为CSS<br />  <a href="http://www.maclema.com/content/sek/" target="_blank" rel="external">http://www.maclema.com/content/sek/</a></p><p>5、Flex2 Style Explorer（Adobe 原始的版本）<br />  <a href="http://examples.adobe.com/flex2/consulting/styleexplorer/Flex2StyleExplorer.html" target="_blank" rel="external">http://examples.adobe.com/flex2/consulting/styleexplorer/Flex2StyleExplorer.html</a></p><p>6、Flex2 Filter Explorer   查看各类滤镜效果并可进行设置<br />    <a href="http://merhl.com/flex2_samples/filterExplorer/" target="_blank" rel="external">http://merhl.com/flex2_samples/filterExplorer/</a><br />  <a href="http://merhl.com/?p=40" target="_blank" rel="external">http://merhl.com/?p=40</a> (AIR版本)</p><p>7、Flex2 Primitive Explorer   在Flex中创建各种简单形状<br />  <a href="http://www.flexibleexperiments.com/Flex/PrimitiveExplorer/Flex2PrimitiveExplorer.html" target="_blank" rel="external">http://www.flexibleexperiments.com/Flex/PrimitiveExplorer/Flex2PrimitiveExplorer.html</a></p>]]></description><category>开源文章</category><comments>http://www.luoye.org/html/read_93.html</comments></item><item><title>Adobe官方出品的ActionScript 3 函数库(as3corelib)</title><author>LuoYe</author><link>http://www.luoye.org/html/read_91.html</link><pubDate>Sun, 16 Aug 2009 16:00:00 +0000</pubDate><description><![CDATA[<p>as3corelib是Adobe官方出品的ActionScript 3   函数库，这个库包括了MD5、SHA1、SHA224、SHA256加密，PNG、JPG编码，JSON序列化等强大功能。</p>详细类库如下： com.adobe.air.logging <br />  com.adobe.crypto <br />  com.adobe.errors <br />  com.adobe.fileformats.vcard <br />  com.adobe.images <br />  com.adobe.net <br />  com.adobe.net.proxies <br />  com.adobe.protocols.dict <br />  com.adobe.protocols.dict.events <br />  com.adobe.protocols.dict.util <br />  com.adobe.serialization.json <br />  com.adobe.utils <br />  com.adobe.webapis <br />  com.adobe.webapis.events <br /><a href="http://code.google.com/p/as3corelib/downloadsbr /st">点击下载</a>]]></description><category>开源文章</category><comments>http://www.luoye.org/html/read_91.html</comments></item></channel></rss>