<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[]]></title>
<link>http://www.jovey.net/blog/</link>
<description><![CDATA[追意|做爱做的事：高清设计，无码开发，诱惑的作品，傲人的体验。关注设计，专注flash。Flash开发工程师，Flash设计师，web设计开发工程师]]></description>
<language>zh-cn</language>
<copyright><![CDATA[Copyright 2005 PBlog3 v2.8]]></copyright>
<webMaster><![CDATA[support@jovey.net(追意 | Jovey)]]></webMaster>
<generator>PBlog2 v2.4</generator> 
<image>
	<title></title>
	<url>http://www.jovey.net/blog/images/logos.gif</url>
	<link>http://www.jovey.net/blog/</link>
	<description></description>
</image>

			<item>
			<link>http://www.jovey.net/blog/article.asp?id=130</link>
			<title><![CDATA[《音乐机械表》第三款千千静听皮肤设计。]]></title>
			<author>support@jovey.net(追意)</author>
			<category><![CDATA[视觉设计]]></category>
			<pubDate>Mon,04 Jan 2010 14:44:58 +0800</pubDate>
			<guid>http://www.jovey.net/blog/default.asp?id=130</guid>
		<description><![CDATA[《音乐机械表》第三款千千静听皮肤设计。<br/><img src="http://skin.qianqian.com/upimgs/091229/162413_322.jpg" border="0" alt=""/>]]></description>
		</item>
		
			<item>
			<link>http://www.jovey.net/blog/article.asp?id=129</link>
			<title><![CDATA[《ShineStyle炫播》第二款千千静听皮肤设计！]]></title>
			<author>support@jovey.net(追意)</author>
			<category><![CDATA[视觉设计]]></category>
			<pubDate>Tue,15 Dec 2009 16:15:24 +0800</pubDate>
			<guid>http://www.jovey.net/blog/default.asp?id=129</guid>
		<description><![CDATA[《ShineStyle炫播》第二款千千静听皮肤设计！<br/>此作品获得三等奖，<a target="_blank" href="http://skin.qianqian.com/final_star.php" rel="external">查看获奖名单</a><br/><br/>下载地址：<a href="http://skin.qianqian.com/skin_final.php?sid=132" target="_blank" rel="external">http://skin.qianqian.com/skin_final.php?sid=132</a><br/><img src="http://skin.qianqian.com/upimgs/091215/155254_367.jpg" border="0" alt=""/>]]></description>
		</item>
		
			<item>
			<link>http://www.jovey.net/blog/article.asp?id=128</link>
			<title><![CDATA[设计的第一款千千静听皮肤。]]></title>
			<author>support@jovey.net(追意)</author>
			<category><![CDATA[视觉设计]]></category>
			<pubDate>Wed,09 Dec 2009 15:55:55 +0800</pubDate>
			<guid>http://www.jovey.net/blog/default.asp?id=128</guid>
		<description><![CDATA[最近做的一套播放器皮肤，由于是第一次做，比较粗糙，很多想法在制作的时候没能实现。哈<br/><br/>如果有用千千静听的朋友，可以下载体验下，哈。　<br/>下载链接：<a href="http://skin.qianqian.com/skin_final.php?sid=96" target="_blank" rel="external">http://skin.qianqian.com/skin_final.php?sid=96</a><br/><br/><img src="http://skin.qianqian.com/upimgs/091209/154745_221.jpg" border="0" alt=""/><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.jovey.net/blog/article.asp?id=127</link>
			<title><![CDATA[Adobe Flex开源开发框架]]></title>
			<author>support@jovey.net(追意)</author>
			<category><![CDATA[收藏借鉴]]></category>
			<pubDate>Mon,26 Oct 2009 13:22:19 +0800</pubDate>
			<guid>http://www.jovey.net/blog/default.asp?id=127</guid>
		<description><![CDATA[Adobe Flex及相关技术正成为RIA领域的主流。虽然Flex社区的规模还远比不上Java或Microsoft平台，但它正在Flex RIA开发者们的栽培下稳健地成长。许多开源开发框架也因此被创造出来：<br/><br/><a target="_blank" href="http://labs.adobe.com/wiki/index.php/Cairngorm" rel="external">Cairngorm</a><br/>Cairngorm是最老也最成熟的Flex框架。它现在由Adobe拥有并开源，而且被Adobe的RIA顾问服务团队大量使用。创造出Cairngorm 的Adobe Consulting团队是把设计模式框架运用到RIA开发的最早的倡导者。Cairngorm中可以看到许多在JEE世界中广泛使用的MVC相关设计模式，即使它只是一个仅用于RIA用户界面开发的微型架构框架。<br/><br/>Cairngorm被看作是企业RIA开发框架。它的分层MVC实现有助于开发出具有复杂的业务逻辑的可伸缩的RIA应用。在异步通信、事件驱动、无线程的Flex平台上，Cairngorm为构建严肃的商业应用程序提供了快速而可靠的方法。<br/><br/>Cairngorm的本质也决定了它可能不适用于小型的快速原型。Adobe说：<br/><br/>Cairngorm微架构的意图是为企业RIA开发者提供一个框架。如果你在编写一个非常简单的应用（比如程序原型），或者只有一个视图的程序，那么你应该考虑“一体化”的方案，就不必挣扎于Cairngorm所倡导的模型、视图和控制分离了。Cairngorm架构的益处在开发复杂的RIA应用的时候才能体现出来，比如有多个用例和视图，由一整个团队负责开发，以及团队中存在设计师、创意型开发者、技术型开发者等受过不同训练的成员的情形。<br/><br/><a target="_blank" href="http://puremvc.org/" rel="external">PureMVC</a><br/>它实际上是一个ActionScript. 3框架。与Cairngorm不同，它完全不依赖任何Flash、Flex或其他Adobe的AS3类。因此它可用于开发任何基于Flash或者ActionScript. 3的应用程序。<br/><br/>从PureMVC的名字中就可以看出，它是根据MVC设计模式来实现的，里面包含了三层，即模型、视图和控制器。这个框架的文档很全面，它的网站上也有很丰富的信息去帮助开发者上手。<br/><br/>由于PureMVC是纯粹用ActionScript实现的，而ActionScript是与JavaScript基于相同标准（ECMAScript）的，强类型的，完全面向对象的语言，因此PureMVC可以很容易移植到其他OO语言。而事实上也确实如此：<br/><br/>我高兴地宣布把PureMVC移植到4种语言的工作正在进行之中：AS2、C#、Java和ColdFusion，现已接近向公众公开的阶段。这样PureMVC的适用平台就扩大到了FlashLite、.NET、Windows Mobile、Silverlight、J2ME、SE、EE以及……ColdFusion:)<br/><br/>这些移植版以及许多演示程序和工具都是由一群专门投身于此项工作的贡献者们完成的，他们遍及全世界。还有许多翻译人员加入进来帮忙把PureMVC的文档翻译成其他语言，包括法语、德语、俄语、汉语和日语等等。他们不知疲倦的工作把一个简单的个人项目变成了全球化的开源成果。很快，你就会认识他们，并爱上他们高质量的工作。要是遇到了这群人中的某一位，请他喝一杯吧！<br/><br/>考虑到ActionScript（ECMAScript）连同Adobe所用的Flash引擎将被内建于下一代的Firefox，PureMVC将会成为RIA开发者们开发跨平台富应用的一件非常趁手的工具。<br/><br/><a target="_blank" href="http://www.model-glue.com/flex.cfm" rel="external">Model-Glue: Flex</a><br/>Model-Glue:Flex也是一个简单的MVC Flex框架。Joe Rinehart把他最初创作的Model-Glue for ColdFusion移植到了Flex。Model-Glue: Flex受到了好评。它的设计意图是成为一个比Cairngorm和PureMVC更轻量的框架，因此更便于快速原型和简单的Flex应用开发。<br/><br/><a target="_blank" href="http://www.servebox.com/foundry/doku.php?id=" rel="external">Foundry</a><br/>ServeBox Foundry（sbasfoundry）是为Flex 2应用程序开发而设计的ActionScript. 3 / Java框架。它根据几个设计模式而设计，还包括了一些工具，用来解决Flex 2开发中一再重现的烦人问题：Model-View同步、屏幕浏览、访问控制列表（开发中）、本地化以及标签文字外部化等等。<br/><br/>Foundry是为中大型规模的企业RIA系统开发而设计和实现的。它包含了Java公用模块，用来将Foundry Flex插件与服务器端的进程紧密集成。<br/><br/><a target="_blank" href="http://www.guasax.com/guasax/web/en/index.php" rel="external">Guasax Flex Framework</a><br/>Guasax是一个易于使用的编程框架，可实现条理清晰的，可伸缩的Flex应用程序。<br/><br/>Guasax框架在运行时依照MVC模式来处理程序的动作。Guasax的一个独特之处是它用一个XML文件来配置业务逻辑中的动作，在某些方面类似于Java Struts框架。可通过开发Guasax组件来扩展Guasax。<br/><br/><a target="_blank" href="http://osflash.org/projects/arp" rel="external">ARP</a><br/>Aral Balkan当初把ARP（Ariaware RIA Platform）作为一个ActionScript框架来开发，现在它已成为Open Source Flash项目群的一员。ARP现在支持使用ActionScript. 2和ActionScript. 3来开发Flash或Flex的RIA应用。<br/><br/>ARP可能是Flash社区中最老的框架。ARP的第一版是早在2000年用Flash 5编写的，其中一部分曾随开源的FC-Lib库发布。随后它发展到Flash MX，其中一部分又进入了开源的Moose库。由于它是从Flash框架进化而来，ARP可以在Flex和AIR中使用。ARP的代码直接访问Flash类，因此有报告说它比其他Flex框架性能更好。<br/><br/><a target="_blank" href="http://code.google.com/p/flest/" rel="external">Flest Framework</a><br/>Flest是构建企业级RIA的ActionScript3 / Flex应用程序框架。它运用了Controller、Factory、Command等设计模式。它的设计理念是高效、简单和实用。Flest框架是一个轻量级且易于使用的工具集合，不但帮助搭建开发的环境，还给开发者最大的自由去实现自己的决定。<br/><br/>除了上面列出的框架，还有一些使用不那么广泛的。你可以看一下EasyMVC、Adobe FAST和Joeberkovitz的框架。<br/><br/>除了用来开发RIA用户界面的框架，RIA开发者还有其他帮手，比如FlexUnit（ActionScript. 3的单元测试框架），FlexLib（开源Flex 2组件库），AS3CoreLib（提供了若干基本工具和出色JSON支持的ActionScript. 3.0类库），以及Granite DS（Adobe Data Services for J2EE应用服务器的免费、开源的替代品，支持EJB3/Spring/Pojo服务）。<br/><br/><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.jovey.net/blog/article.asp?id=126</link>
			<title><![CDATA[blog升级新到pjblog3.0]]></title>
			<author>support@jovey.net(追意)</author>
			<category><![CDATA[生活手记]]></category>
			<pubDate>Fri,23 Oct 2009 12:01:05 +0800</pubDate>
			<guid>http://www.jovey.net/blog/default.asp?id=126</guid>
		<description><![CDATA[已经有N长时间没有更新blog了，最近看到网站几近荒废，准备重拾。原本想随大潮转到wordpress，但由于空间数据库等原因，还是放弃了转换的想法，不过还是把blog从pjblog2.6升级到了pjblog3.0，新皮肤也正修改调整中。]]></description>
		</item>
		
			<item>
			<link>http://www.jovey.net/blog/article.asp?id=125</link>
			<title><![CDATA[资深玩家谈网页游戏 技术是重中之重]]></title>
			<author>support@jovey.net(追意)</author>
			<category><![CDATA[收藏借鉴]]></category>
			<pubDate>Fri,07 Aug 2009 10:20:57 +0800</pubDate>
			<guid>http://www.jovey.net/blog/default.asp?id=125</guid>
		<description><![CDATA[<br/>网页游戏正处于飞速发展的时期，并且网页游戏的主要客户群，上班族也被定位成为主要玩家。不用慢长的泡在游戏里，打怪升级，我想这也是多数玩家选择网页游戏的初衷吧，但是网页游戏不具备客户端网游的华丽、刺激的效果，所以一直以来人气都高不过客户端网游，针对这种问题本人有几天点想法。 <br/><br/><br/>一、针对网游玩家，网页游戏要向更加精美，更具技术含量的方向发展，这方面的成功例子有2007年全球游戏排行第二的Runscape网页游戏，其虽然作为一款网页游戏，但却是一款3D的网页游戏，这种气魄及技术含量是首屈一指的，所以技术方面是重中之重。 <br/><br/><br/>二、游戏要从题材及内容方面，向趣味性发展，增加一定的优美音乐，主要目的是希望吸引女性玩家。一方面针对性开发上班族中的女性玩家，另一方面开发女学生，因为对于女性而言，上班族与学生或者其它年轻女性，游戏的追求是一样。所以有创意有必要的话，能够开发一款同时适合女性的网页游戏，女性玩家对于游戏的推动是不言而喻的，有女性的地方，永远都不愁没有男玩家。通过一款网页游戏来积累女性玩家，这将是一笔强大的财富。 <br/><br/><br/>三、上班族之所以被定位于网页游戏的主体玩家，是因为上班族时间与行为有许多的限制，同时生活也比较压抑，偶尔需要一些放松。这种情况下，让网游玩家觉得非常粗糙及相当耗时的网页游戏，却吻合了上班族的需要。网页游戏画面在追求更加精美的同时，画面不能过暗及过浓，最好是以白色底为主。因为对于上班族而言，其有许多的顾忌，上班期间玩游戏本来就不妥，有点提心掉胆的，如果画面过于暗，颜色过于浓，上班族肯定会放弃些款游戏，这一点由游戏中部分玩家的离去原因 <br/><br/><br/>四、玩网页游戏的除了部分客户端网游玩家外，还有部分第一次接触网游的他们可以说是超级小白，连游戏怎么充值都不会，所以多接入些充值方式，可以留住不少玩家，现在多数网页游戏都接入了 “游戏支付三剑客”这样方便那些没有使用过网银购物的人群。而且对资金安全也有保障。 <br/><br/><br/>五、在网页游戏备受关注的一年里，各个网页游戏开发、运营公司在09年里会受到很多限制，立法的健全，行业的规范，等等等等，一切都在预示着，网页游戏业将面临一次改革，而这次改革中会有一批被淘汰。所以在综合策略上，网页游戏开发、运营公司会相对08年保守很多，以防止受到灭顶之灾，被市场淘汰。那么就要合理化使用资产，尽量发展自身各项品质，使自己能更容易适应行业震荡。 <br/><br/><br/>网游是一种娱乐服务，只有不断的更新服务、提高服务、扩大服务才会吸引更多的玩家，一切站在玩家的立场考虑问题，从而会获得更大的效益。 <br/><br/><br/>09年将是网页游戏真正发展的一年，从行业标准到游戏品质都会有很大的提高。而且更人性化的发展和管理游戏成为主流，这就使直接受益者变成玩家。在面对众多精品游戏的时候，玩家占据了主动权，不再是被迫无奈的玩不是很喜欢的游戏，而是有更多的选择，这一切都是去考验网页游戏开发、运营商的游戏品质。<br/><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.jovey.net/blog/article.asp?id=124</link>
			<title><![CDATA[小猪的供窝记。。]]></title>
			<author>support@jovey.net(追意)</author>
			<category><![CDATA[瞎侃杂谈]]></category>
			<pubDate>Wed,10 Dec 2008 18:26:49 +0800</pubDate>
			<guid>http://www.jovey.net/blog/default.asp?id=124</guid>
		<description><![CDATA[猪通过勤劳致富有5元钱存在老鼠开的钱庄里。猪打算拿这5元钱建一个小窝，大概要花2元卖地，花3元搭窝。 <br/>王八是搞工程的，他想在猪身上挣更多的钱，于是找来当投资顾问的狐狸想办法。 <br/>狐狸说：这好办。于是找来管地盘的狼，开钱庄的老鼠一起来商议。 <br/>结果王八从老鼠那里借来200元，用100元买了狼的地，花了3元把猪窝盖好，花了50元给了狐狸咨询服务费。 <br/>猪没有地，只好求王八把窝卖给它，王八要价500元。 <br/>老猪说只有5元买不起，这时候狐狸说服猪去向老鼠借钱； <br/>老鼠答应借500给猪，前提是要他连本带利还600元，可以分10年还清，并且产权证拿来抵押。结果成交。 <br/>猪到最后花了600元买来了猪窝，比地价加建设成本高了11倍，猪努力了十年去挣钱还贷。 <br/>在这场交易里面，狼，老鼠，狐狸还有王八都挣了钱。以后他们就如法炮制，迫使更多的猪去贷款买房子了。 <br/>这时候，驴看到有机可乘，到老鼠那里贷了好多好多的款，把王八盖的房子都买下来，然后以更高的价格卖给了猪。猪的还贷期就越来越长，吃的越来越差，小猪崽子也不敢生了。 <br/>由于猪的数目越来越少，狼觉得这样下去自己没有猪肉吃了，非饿死不可，于是开始调控，不让老鼠再借钱了。但是王八还没有停止盖房，把自己挣的钱和贷的钱全投入生产了。驴手上的猪窝囤积的很多，卖不动了被套牢了。结果，老鼠，王八，还有驴都挣了好多的猪窝。钱到最后集中到狼手上。 <br/>如今，谁都等着狼把钱拿出来救命。<br/>]]></description>
		</item>
		
			<item>
			<link>http://www.jovey.net/blog/article.asp?id=123</link>
			<title><![CDATA[JSON 入门指南]]></title>
			<author>support@jovey.net(追意)</author>
			<category><![CDATA[前端技术]]></category>
			<pubDate>Fri,10 Oct 2008 16:04:33 +0800</pubDate>
			<guid>http://www.jovey.net/blog/default.asp?id=123</guid>
		<description><![CDATA[JSON 即 JavaScript Object Natation，它是一种轻量级的数据交换格式，非常适合于服务器与 JavaScript 的交互。本文将快速讲解 JSON 格式，并通过代码示例演示如何分别在客户端和服务器端进行 JSON 格式数据的处理。 <br/>尽管有许多宣传关于 XML 如何拥有跨平台，跨语言的优势，然而，除非应用于 Web Services，否则，在普通的 Web 应用中，开发者经常为 XML 的解析伤透了脑筋，无论是服务器端生成或处理 XML，还是客户端用 JavaScript 解析 XML，都常常导致复杂的代码，极低的开发效率。实际上，对于大多数 Web 应用来说，他们根本不需要复杂的 XML 来传输数据，XML 的扩展性很少具有优势，许多 AJAX 应用甚至直接返回 HTML 片段来构建动态 Web 页面。和返回 XML 并解析它相比，返回 HTML 片段大大降低了系统的复杂性，但同时缺少了一定的灵活性。 <br/><br/>现在， JSON 为 Web 应用开发者提供了另一种数据交换格式。让我们来看看 JSON 到底是什么，同 XML 或 HTML 片段相比，JSON 提供了更好的简单性和灵活性。<br/><strong><span style="font-size:14pt;line-height:100%;">JSON 数据格式解析 </span></strong><br/><br/>和 XML 一样，JSON 也是基于纯文本的数据格式。由于 JSON 天生是为 JavaScript 准备的，因此，JSON 的数据格式非常简单，您可以用 JSON 传输一个简单的 String，Number，Boolean，也可以传输一个数组，或者一个复杂的 Object 对象。 <br/><br/>String，Number 和 Boolean 用 JSON 表示非常简单。例如，用 JSON 表示一个简单的 String “ abc ”，其格式为：<br/><br/>&#34;abc&#34; <br/><br/><br/>除了字符 &#34;，\，/ 和一些控制符（\b，\f，\n，\r，\t）需要编码外，其他 Unicode 字符可以直接输出。<br/><br/>这与绝大多数编程语言的表示方法一致，例如：<br/><br/>12345（整数）<br/> -3.9e10（浮点数） <br/><br/><br/>Boolean 类型表示为 true 或 false 。此外，JavaScript 中的 null 被表示为 null，注意，true、false 和 null 都没有双引号，否则将被视为一个 String 。 <br/><br/>JSON 还可以表示一个数组对象，使用 [] 包含所有元素，每个元素用逗号分隔，元素可以是任意的 Value，例如，以下数组包含了一个 String，Number，Boolean 和一个 null：<br/><br/>[&#34;abc&#34;,12345,false,null] <br/><br/><br/>Object 对象在 JSON 中是用 {} 包含一系列无序的 Key-Value 键值对表示的，实际上此处的 Object 相当于 Java 中的 Map&lt;String, Object&gt;，而不是 Java 的 Class 。注意 Key 只能用 String 表示。 <br/><br/>例如，一个 Address 对象包含如下 Key-Value：<br/><br/>city:Beijing <br/> street:Chaoyang Road <br/> postcode:100025（整数） <br/><br/><br/>用 JSON 表示如下：<br/><br/>{&#34;city&#34;:&#34;Beijing&#34;,&#34;street&#34;:&#34; Chaoyang Road &#34;,&#34;postcode&#34;:100025} <br/><br/><br/>其中 Value 也可以是另一个 Object 或者数组，因此，复杂的 Object 可以嵌套表示，例如，一个 Person 对象包含 name 和 address 对象，可以表示如下：<br/><br/>{&#34;name&#34;:&#34;Michael&#34;,&#34;address&#34;:<br/>&nbsp;&nbsp;&nbsp;&nbsp;{&#34;city&#34;:&#34;Beijing&#34;,&#34;street&#34;:&#34; Chaoyang Road &#34;,&#34;postcode&#34;:100025}<br/>} <br/><br/><br/><strong>JavaScript 处理 JSON 数据 </strong><br/><br/>上面介绍了如何用 JSON 表示数据，接下来，我们还要解决如何在服务器端生成 JSON 格式的数据以便发送到客户端，以及客户端如何使用 JavaScript 处理 JSON 格式的数据。 <br/><br/>我们先讨论如何在 Web 页面中用 JavaScript 处理 JSON 数据。我们通过一个简单的 JavaScript 方法就能看到客户端如何将 JSON 数据表示给用户：<br/><br/>function handleJson() { <br/>&nbsp;&nbsp;var j={&#34;name&#34;:&#34;Michael&#34;,&#34;address&#34;:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&#34;city&#34;:&#34;Beijing&#34;,&#34;street&#34;:&#34; Chaoyang Road &#34;,&#34;postcode&#34;:100025}<br/>&nbsp;&nbsp;}; <br/>&nbsp;&nbsp;document.write(j.name); <br/>&nbsp;&nbsp;document.write(j.address.city); <br/> } <br/><br/><br/>假定服务器返回的 JSON 数据是上文的：<br/><br/>{&#34;name&#34;:&#34;Michael&#34;,&#34;address&#34;:<br/>&nbsp;&nbsp;&nbsp;&nbsp;{&#34;city&#34;:&#34;Beijing&#34;,&#34;street&#34;:&#34; Chaoyang Road &#34;,&#34;postcode&#34;:100025}<br/>} <br/><br/><br/>只需将其赋值给一个 JavaScript 变量，就可以立刻使用该变量并更新页面中的信息了，相比 XML 需要从 DOM 中读取各种节点而言，JSON 的使用非常容易。我们需要做的仅仅是发送一个 Ajax 请求，然后将服务器返回的 JSON 数据赋值给一个变量即可。有许多 Ajax 框架早已包含了处理 JSON 数据的能力，例如 Prototype（一个流行的 JavaScript 库：<a href="http://prototypejs.org" target="_blank" rel="external">http://prototypejs.org</a>）提供了 evalJSON() 方法，能直接将服务器返回的 JSON 文本变成一个 JavaScript 变量：<br/><br/>new Ajax.Request(&#34;<a href="http://url" target="_blank" rel="external">http://url</a>&#34;, { <br/>&nbsp;&nbsp;method: &#34;get&#34;, <br/>&nbsp;&nbsp;onSuccess: function(transport) { <br/>&nbsp;&nbsp;&nbsp;&nbsp;var json = transport.responseText.evalJSON(); <br/>&nbsp;&nbsp;&nbsp;&nbsp;// TODO: document.write(json.xxx); <br/>&nbsp;&nbsp;} <br/> }); <br/><br/><br/><strong>服务器端输出 JSON 格式数据 </strong><br/><br/>下面我们讨论如何在服务器端输出 JSON 格式的数据。以 Java 为例，我们将演示将一个 Java 对象编码为 JSON 格式的文本。 <br/><br/>将 String 对象编码为 JSON 格式时，只需处理好特殊字符即可。另外，必须用 (&#34;) 而非 (&#39;) 表示字符串：<br/><br/> <br/> static String string2Json(String s) { <br/>&nbsp;&nbsp;&nbsp;&nbsp;StringBuilder sb = new StringBuilder(s.length()+20); <br/>&nbsp;&nbsp;&nbsp;&nbsp;sb.append(&#39;\&#34;&#39;); <br/>&nbsp;&nbsp;&nbsp;&nbsp;for (int i=0; i&lt;s.length(); i++) { <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;char c = s.charAt(i); <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;switch (c) { <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case &#39;\&#34;&#39;: <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.append(&#34;\\\&#34;&#34;); <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case &#39;\\&#39;: <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.append(&#34;\\\\&#34;); <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case &#39;/&#39;: <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.append(&#34;\\/&#34;); <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case &#39;\b&#39;: <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.append(&#34;\\b&#34;); <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case &#39;\f&#39;: <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.append(&#34;\\f&#34;); <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case &#39;\n&#39;: <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.append(&#34;\\n&#34;); <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case &#39;\r&#39;: <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.append(&#34;\\r&#34;); <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case &#39;\t&#39;: <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.append(&#34;\\t&#34;); <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break; <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;default: <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.append(c); <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} <br/>&nbsp;&nbsp;&nbsp;&nbsp;} <br/>&nbsp;&nbsp;&nbsp;&nbsp;sb.append(&#39;\&#34;&#39;); <br/>&nbsp;&nbsp;&nbsp;&nbsp;return sb.toString(); <br/> } <br/>&nbsp;&nbsp;<br/><br/><br/>将 Number 表示为 JSON 就容易得多，利用 Java 的多态，我们可以处理 Integer，Long，Float 等多种 Number 格式：<br/><br/> <br/> static String number2Json(Number number) { <br/>&nbsp;&nbsp;&nbsp;&nbsp;return number.toString(); <br/> } <br/>&nbsp;&nbsp;<br/><br/><br/>Boolean 类型也可以直接通过 toString() 方法得到 JSON 的表示：<br/><br/> <br/> static String boolean2Json(Boolean bool) { <br/>&nbsp;&nbsp;&nbsp;&nbsp;return bool.toString(); <br/> } <br/>&nbsp;&nbsp;<br/><br/><br/>要将数组编码为 JSON 格式，可以通过循环将每一个元素编码出来：<br/><br/> <br/> static String array2Json(Object[] array) { <br/>&nbsp;&nbsp;&nbsp;&nbsp;if (array.length==0) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return &#34;[]&#34;; <br/>&nbsp;&nbsp;&nbsp;&nbsp;StringBuilder sb = new StringBuilder(array.length &lt;&lt; 4); <br/>&nbsp;&nbsp;&nbsp;&nbsp;sb.append(&#39;[&#39;); <br/>&nbsp;&nbsp;&nbsp;&nbsp;for (Object o : array) { <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.append(toJson(o)); <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.append(&#39;,&#39;); <br/>&nbsp;&nbsp;&nbsp;&nbsp;} <br/>&nbsp;&nbsp;&nbsp;&nbsp;// 将最后添加的 &#39;,&#39; 变为 &#39;]&#39;: <br/>&nbsp;&nbsp;&nbsp;&nbsp;sb.setCharAt(sb.length()-1, &#39;]&#39;); <br/>&nbsp;&nbsp;&nbsp;&nbsp;return sb.toString(); <br/> } <br/>&nbsp;&nbsp;<br/><br/><br/>最后，我们需要将 Map&lt;String, Object&gt; 编码为 JSON 格式，因为 JavaScript 的 Object 实际上对应的是 Java 的 Map&lt;String, Object&gt; 。该方法如下：<br/><br/> <br/> static String map2Json(Map&lt;String, Object&gt; map) { <br/>&nbsp;&nbsp;&nbsp;&nbsp;if (map.isEmpty()) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return &#34;{}&#34;; <br/>&nbsp;&nbsp;&nbsp;&nbsp;StringBuilder sb = new StringBuilder(map.size() &lt;&lt; 4); <br/>&nbsp;&nbsp;&nbsp;&nbsp;sb.append(&#39;{&#39;); <br/>&nbsp;&nbsp;&nbsp;&nbsp;Set&lt;String&gt; keys = map.keySet(); <br/>&nbsp;&nbsp;&nbsp;&nbsp;for (String key : keys) { <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Object value = map.get(key); <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.append(&#39;\&#34;&#39;); <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.append(key); <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.append(&#39;\&#34;&#39;); <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.append(&#39;:&#39;); <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.append(toJson(value)); <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb.append(&#39;,&#39;); <br/>&nbsp;&nbsp;&nbsp;&nbsp;} <br/>&nbsp;&nbsp;&nbsp;&nbsp;// 将最后的 &#39;,&#39; 变为 &#39;}&#39;: <br/>&nbsp;&nbsp;&nbsp;&nbsp;sb.setCharAt(sb.length()-1, &#39;}&#39;); <br/>&nbsp;&nbsp;&nbsp;&nbsp;return sb.toString(); <br/> } <br/>&nbsp;&nbsp;<br/><br/><br/>为了统一处理任意的 Java 对象，我们编写一个入口方法 toJson(Object)，能够将任意的 Java 对象编码为 JSON 格式：<br/><br/> <br/> public static String toJson(Object o) { <br/>&nbsp;&nbsp;&nbsp;&nbsp;if (o==null) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return &#34;null&#34;; <br/>&nbsp;&nbsp;&nbsp;&nbsp;if (o instanceof String) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return string2Json((String)o); <br/>&nbsp;&nbsp;&nbsp;&nbsp;if (o instanceof Boolean) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return boolean2Json((Boolean)o); <br/>&nbsp;&nbsp;&nbsp;&nbsp;if (o instanceof Number) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return number2Json((Number)o); <br/>&nbsp;&nbsp;&nbsp;&nbsp;if (o instanceof Map) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return map2Json((Map&lt;String, Object&gt;)o); <br/>&nbsp;&nbsp;&nbsp;&nbsp;if (o instanceof Object[]) <br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return array2Json((Object[])o); <br/>&nbsp;&nbsp;&nbsp;&nbsp;throw new RuntimeException(&#34;Unsupported type: &#34; + o.getClass().getName()); <br/> } <br/>&nbsp;&nbsp;<br/><br/><br/>我们并未对 Java 对象作严格的检查。不被支持的对象（例如 List）将直接抛出 RuntimeException 。此外，为了保证输出的 JSON 是有效的，Map&lt;String, Object&gt; 对象的 Key 也不能包含特殊字符。细心的读者可能还会发现循环引用的对象会引发无限递归，例如，精心构造一个循环引用的 Map，就可以检测到 StackOverflowException：<br/><br/> <br/> @Test(expected=StackOverflowError.class) <br/> public void testRecurrsiveMap2Json() { <br/>&nbsp;&nbsp;&nbsp;&nbsp;Map&lt;String, Object&gt; map = new HashMap&lt;String, Object&gt;(); <br/>&nbsp;&nbsp;&nbsp;&nbsp;map.put(&#34;key&#34;, map); <br/>&nbsp;&nbsp;&nbsp;&nbsp;JsonUtil.map2Json(map); <br/> } <br/>&nbsp;&nbsp;<br/><br/><br/>好在服务器处理的 JSON 数据最终都应该转化为简单的 JavaScript 对象，因此，递归引用的可能性很小。 <br/><br/>最后，通过 Servlet 或 MVC 框架输出 JSON 时，需要设置正确的 MIME 类型（application/json）和字符编码。假定服务器使用 UTF-8 编码，则可以使用以下代码输出编码后的 JSON 文本：<br/><br/> <br/> response.setContentType(&#34;application/json;charset=UTF-8&#34;); <br/> response.setCharacterEncoding(&#34;UTF-8&#34;); <br/> PrintWriter pw = response.getWriter(); <br/> pw.write(JsonUtil.toJson(obj)); <br/> pw.flush(); <br/>&nbsp;&nbsp;<br/><br/><br/>小结 <br/><br/>JSON 已经是 JavaScript 标准的一部分。目前，主流的浏览器对 JSON 支持都非常完善。应用 JSON，我们可以从 XML 的解析中摆脱出来，对那些应用 Ajax 的 Web 2.0 网站来说，JSON 确实是目前最灵活的轻量级方案。 <br/><br/><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.jovey.net/blog/article.asp?id=122</link>
			<title><![CDATA[ghost系统盘下载]]></title>
			<author>support@jovey.net(追意)</author>
			<category><![CDATA[瞎侃杂谈]]></category>
			<pubDate>Tue,07 Oct 2008 15:34:14 +0800</pubDate>
			<guid>http://www.jovey.net/blog/default.asp?id=122</guid>
		<description><![CDATA[<a target="_blank" href="http://www.77816.com/" rel="external">ghost系统盘下载</a><br/><br/><a target="_blank" href="http://www.77816.com/class/6_1.htm" rel="external">深度系统 </a><br/><a target="_blank" href="http://www.77816.com/class/6_1.htm" rel="external">http://www.77816.com/class/6_1.htm</a><br/><br/><a target="_blank" href="http://www.77816.com/soft/97.htm" rel="external">深度GHOSTXP SP3快速装机专业版V9.0(NTFS) </a><br/><a target="_blank" href="http://www.77816.com/soft/97.htm" rel="external">http://www.77816.com/soft/97.htm</a><br/><br/><a target="_blank" href="http://www.77816.com/soft/96.htm" rel="external">深度Deepin XP Lite 完美精简版 V5.10 正式版 </a><br/><a target="_blank" href="http://www.77816.com/soft/96.htm" rel="external">http://www.77816.com/soft/96.htm</a><br/><br/><a target="_blank" href="http://www.77816.com/soft/95.htm" rel="external">深度winXP sp3 安装版 V6.2 </a><br/><a target="_blank" href="http://www.77816.com/soft/95.htm" rel="external">http://www.77816.com/soft/95.htm</a><br/><br/><a target="_blank" href="http://www.77816.com/soft/94.htm" rel="external">深度winXP sp3 安装版与万能克隆版二合一 V6.2 </a><br/><a target="_blank" href="http://www.77816.com/soft/94.htm" rel="external">http://www.77816.com/soft/94.htm</a><br/><br/><a target="_blank" href="http://www.77816.com/soft/98.htm" rel="external">深度技术GHOSTXP 电脑城克隆版V7.0-SP2</a> <br/><a target="_blank" href="http://www.77816.com/soft/98.htm" rel="external">http://www.77816.com/soft/98.htm</a><br/><br/><br/><br/><br/><a target="_blank" href="http://www.77816.com/class/7_1.htm" rel="external">雨林木风 </a><br/><a target="_blank" href="http://www.77816.com/class/7_1.htm" rel="external">http://www.77816.com/class/7_1.htm</a><br/><br/><a target="_blank" href="http://www.77816.com/soft/93.htm" rel="external">雨林木风Windows.XP.SP3.安装版 YS5.6</a><br/> <a target="_blank" href="http://www.77816.com/soft/93.htm" rel="external">http://www.77816.com/soft/93.htm</a><br/><br/><a target="_blank" href="http://www.77816.com/soft/92.htm" rel="external">雨林木风 Ghost XP SP2 装机版 YN7.0 </a><br/><a target="_blank" href="http://www.77816.com/soft/92.htm" rel="external">http://www.77816.com/soft/92.htm</a><br/><br/><a target="_blank" href="http://www.77816.com/soft/91.htm" rel="external">雨林木风 Ghost XP SP3 纯净版 Y5.5 </a><br/><a target="_blank" href="http://www.77816.com/soft/91.htm" rel="external">http://www.77816.com/soft/91.htm</a><br/><br/><a target="_blank" href="http://www.77816.com/soft/90.htm" rel="external">雨林木风 Ghost XP SP3 装机版 YN9.6 </a><br/><a target="_blank" href="http://www.77816.com/soft/90.htm" rel="external">http://www.77816.com/soft/90.htm</a><br/><br/><a target="_blank" href="http://www.77816.com/soft/89.htm" rel="external">雨林木风 Ghost XP SP3 装机版 YN9.5 </a><br/><a target="_blank" href="http://www.77816.com/soft/89.htm" rel="external">http://www.77816.com/soft/89.htm</a><br/><br/><a target="_blank" href="http://www.77816.com/soft/88.htm" rel="external">雨林木风 Ghost XP SP2 豪华装机版 YD2.0 </a><br/><a target="_blank" href="http://www.77816.com/soft/88.htm" rel="external">http://www.77816.com/soft/88.htm</a><br/><br/><a target="_blank" href="http://www.77816.com/soft/87.htm" rel="external">雨林木风 Windows XP SP3 安装版 Y5.0 </a><br/><a target="_blank" href="http://www.77816.com/soft/87.htm" rel="external">http://www.77816.com/soft/87.htm</a><br/><br/><br/><br/><br/><br/><a target="_blank" href="http://www.77816.com/class/8_1.htm" rel="external">其它系统 </a><br/><a target="_blank" href="http://www.77816.com/class/8_1.htm" rel="external">http://www.77816.com/class/8_1.htm</a><br/><br/><a target="_blank" href="http://www.77816.com/soft/85.htm" rel="external">Ghost XP SP3龙卷风纯净版 V1.5 </a><br/><a target="_blank" href="http://www.77816.com/soft/85.htm" rel="external">http://www.77816.com/soft/85.htm</a><br/><br/><a target="_blank" href="http://www.77816.com/soft/86.htm" rel="external">GhostXP SP3 统一下载三周年美化纯净版 </a><br/><a target="_blank" href="http://www.77816.com/soft/86.htm" rel="external">http://www.77816.com/soft/86.htm</a><br/><br/><a target="_blank" href="http://www.77816.com/soft/84.htm" rel="external">完美者WinXP sp3周年版 </a><br/><a target="_blank" href="http://www.77816.com/soft/84.htm" rel="external">http://www.77816.com/soft/84.htm</a><br/><br/><a target="_blank" href="http://www.77816.com/soft/83.htm" rel="external">萝卜家园 Ghost XP 电脑城装机版 8.8</a> <br/><a target="_blank" href="http://www.77816.com/soft/83.htm" rel="external">http://www.77816.com/soft/83.htm</a><br/><br/><a target="_blank" href="http://www.77816.com/soft/82.htm" rel="external">3G网络GHOST XP SP3 纯净版 </a><br/><a target="_blank" href="http://www.77816.com/soft/82.htm" rel="external">http://www.77816.com/soft/82.htm</a><br/><br/><a target="_blank" href="http://www.77816.com/soft/81.htm" rel="external">GHOST XP SP3 遐想网络专用加强版4.0 NTFS</a> <br/><a target="_blank" href="http://www.77816.com/soft/81.htm" rel="external">http://www.77816.com/soft/81.htm</a><br/><br/><a target="_blank" href="http://www.77816.com/soft/80.htm" rel="external">GHOST XP SP3 遐想网络专用加强版4.0 FAT32 </a><br/><a target="_blank" href="http://www.77816.com/soft/80.htm" rel="external">http://www.77816.com/soft/80.htm</a><br/><br/><a target="_blank" href="http://www.77816.com/soft/79.htm" rel="external">GhostXP_SP3 999宝藏网V4.0活力版 </a><br/><a target="_blank" href="http://www.77816.com/soft/79.htm" rel="external">http://www.77816.com/soft/79.htm</a><br/><br/><a target="_blank" href="http://www.77816.com/soft/78.htm" rel="external">乡巴佬 GHOST XP SP3 快速装机专业版 V1.0 </a><br/><a target="_blank" href="http://www.77816.com/soft/78.htm" rel="external">http://www.77816.com/soft/78.htm</a><br/><br/><a target="_blank" href="http://www.77816.com/soft/77.htm" rel="external">999宝藏网 GHOST XP SP2 活力版 V3.0 </a><br/><a target="_blank" href="http://www.77816.com/soft/77.htm" rel="external">http://www.77816.com/soft/77.htm</a><br/><br/><a target="_blank" href="http://www.77816.com/soft/76.htm" rel="external">Ghost SP3电脑城装机纯净10.0版 </a><br/><a target="_blank" href="http://www.77816.com/soft/76.htm" rel="external">http://www.77816.com/soft/76.htm</a><br/><br/><a target="_blank" href="http://www.77816.com/soft/75.htm" rel="external">GhostXP SP3电脑公司特别版 v9.2 </a><br/><a target="_blank" href="http://www.77816.com/soft/75.htm" rel="external">http://www.77816.com/soft/75.htm</a><br/><br/><a target="_blank" href="http://www.77816.com/soft/74.htm" rel="external">Ghost XP SP3电爱俱乐部V8.0最终版 </a><br/><a href="http://www.77816.com/soft/74.htm" target="_blank" rel="external">http://www.77816.com/soft/74.htm</a>[/url]<br/><br/><a target="_blank" href="http://www.77816.com/soft/73.htm" rel="external">浩海技术Ghost XP SP3快速装机版v8.4 </a><br/><a target="_blank" href="http://www.77816.com/soft/73.htm" rel="external">http://www.77816.com/soft/73.htm</a><br/><br/><a target="_blank" href="http://www.77816.com/soft/72.htm" rel="external">萝卜家园 Ghost XP 电脑城装机版 V200805 </a><br/><a target="_blank" href="http://www.77816.com/soft/72.htm" rel="external">http://www.77816.com/soft/72.htm</a><br/><br/><a target="_blank" href="http://www.77816.com/soft/71.htm" rel="external">磐石Ghost XP SP3电脑城技术员专用版 V1.0 </a><br/><a target="_blank" href="http://www.77816.com/soft/71.htm" rel="external">http://www.77816.com/soft/71.htm</a><br/><br/><a target="_blank" href="http://www.77816.com/soft/70.htm" rel="external">WinXP SP3 赢狗电脑公司专用v1.0装机版 </a><br/><a target="_blank" href="http://www.77816.com/soft/70.htm" rel="external">http://www.77816.com/soft/70.htm</a><br/><br/><a target="_blank" href="http://www.77816.com/soft/69.htm" rel="external">江南才子 GHOST XP SP3 纯净版V1.0 </a><br/><a target="_blank" href="http://www.77816.com/soft/69.htm" rel="external">http://www.77816.com/soft/69.htm</a><br/><br/><a target="_blank" href="http://www.77816.com/soft/68.htm" rel="external">萝卜家园 Ghost XP 新春装机版 </a><br/><a target="_blank" href="http://www.77816.com/soft/68.htm" rel="external">http://www.77816.com/soft/68.htm</a><br/><br/><a target="_blank" href="http://www.77816.com/soft/67.htm" rel="external">小路工作室 GhostXP P2008贺岁版</a><br/><a target="_blank" href="http://www.77816.com/soft/67.htm" rel="external">http://www.77816.com/soft/67.htm</a><br/><br/><a target="_blank" href="http://www.77816.com/soft/66.htm" rel="external">Ghost XP SP2 统一下载两周年纪念 美化纯净版V4.0 </a><br/><a target="_blank" href="http://www.77816.com/soft/66.htm" rel="external">http://www.77816.com/soft/66.htm</a><br/><br/><a target="_blank" href="http://www.77816.com/soft/65.htm" rel="external">系统大玩家GhostXP快速装机版 V6.0 </a><br/><a target="_blank" href="http://www.77816.com/soft/65.htm" rel="external">http://www.77816.com/soft/65.htm</a><br/><br/><a target="_blank" href="http://www.77816.com/soft/64.htm" rel="external">Ghost XP SP3布衣联盟陆少纯净版 </a><br/><a target="_blank" href="http://www.77816.com/soft/64.htm" rel="external">http://www.77816.com/soft/64.htm</a><br/><br/><a target="_blank" href="http://www.77816.com/soft/63.htm" rel="external">GHOSTXP SP3 钻石版 V8.1 </a><br/><a target="_blank" href="http://www.77816.com/soft/63.htm" rel="external">http://www.77816.com/soft/63.htm</a><br/><br/><a target="_blank" href="http://www.77816.com/soft/62.htm" rel="external">Ghost XP SP3 电脑市场纯净版 v5.5 </a><br/><a target="_blank" href="http://www.77816.com/soft/62.htm" rel="external">http://www.77816.com/soft/62.htm</a><br/><br/><a target="_blank" href="http://www.77816.com/soft/61.htm" rel="external">电脑市场 GhostXP SP2装机版 v3.0 </a><br/><a target="_blank" href="http://www.77816.com/soft/61.htm" rel="external">http://www.77816.com/soft/61.htm</a><br/><br/><a target="_blank" href="http://www.77816.com/soft/60.htm" rel="external">GHOST XP SP3 无忧装机光盘V9.0 </a><br/><a target="_blank" href="http://www.77816.com/soft/60.htm" rel="external">http://www.77816.com/soft/60.htm</a><br/><br/><a target="_blank" href="http://www.77816.com/soft/59.htm" rel="external">winxpsp3完美精简版V4.1 </a><br/><a target="_blank" href="http://www.77816.com/soft/59.htm" rel="external">http://www.77816.com/soft/59.htm</a><br/><br/><a target="_blank" href="http://www.77816.com/soft/58.htm" rel="external">Win2003 SP2 4in1 0808盛世雄风完整版 </a><br/><a target="_blank" href="http://www.77816.com/soft/58.htm" rel="external">http://www.77816.com/soft/58.htm</a><br/><br/><a target="_blank" href="http://www.77816.com/soft/57.htm" rel="external">FLY社区 XP SP3 装机无忧5.0(纯净版+美化版+驱动+PE) </a><br/><a target="_blank" href="http://www.77816.com/soft/57.htm" rel="external">http://www.77816.com/soft/57.htm</a><br/><br/><br/><br/><a target="_blank" href="http://www.77816.com/soft/99.htm" rel="external">雨林木风 Windows XP SP3 精简安装版 Y1.1 </a><br/><a target="_blank" href="http://www.77816.com/soft/99.htm" rel="external">http://www.77816.com/soft/99.htm</a><br/><br/><br/><a target="_blank" href="http://www.77816.com/soft/100.htm" rel="external">雨林木风 Windows XP SP3 精简安装版 Y1.0 </a><br/><a target="_blank" href="http://www.77816.com/soft/100.htm" rel="external">http://www.77816.com/soft/100.htm</a><br/><br/><br/><a target="_blank" href="http://www.77816.com/soft/101.htm" rel="external">Windows XP Pro SP3 VIP网吧特制版 V2.3.2By石头工作室 </a><br/><a target="_blank" href="http://www.77816.com/soft/101.htm" rel="external">http://www.77816.com/soft/101.htm</a><br/><br/><a target="_blank" href="http://www.77816.com/soft/102.htm" rel="external">WINDOWS XP安全完美版V1.0 </a><br/><a target="_blank" href="http://www.77816.com/soft/102.htm" rel="external">http://www.77816.com/soft/102.htm</a><br/><br/><a target="_blank" href="http://www.77816.com/soft/103.htm" rel="external">欢度国庆 GhostXP_SP3电脑城极速装机版 V10.0 </a><br/><a target="_blank" href="http://www.77816.com/soft/103.htm" rel="external">http://www.77816.com/soft/103.htm</a><br/><br/><a target="_blank" href="http://www.shenduxp.com/" rel="external">深度系统</a><br/><a target="_blank" href="http://www.shenduxp.com/" rel="external">http://www.shenduxp.com/</a><br/><br/><a target="_blank" href="http://www.ylmfwinxp.com/" rel="external">雨林木风</a><br/><a target="_blank" href="http://www.ylmfwinxp.com/" rel="external">http://www.ylmfwinxp.com/</a><br/><br/><a target="_blank" href="http://www.xp666.com/" rel="external">XP系统盘</a><br/><a target="_blank" href="http://www.xp666.com/" rel="external">http://www.xp666.com/</a>]]></description>
		</item>
		
			<item>
			<link>http://www.jovey.net/blog/article.asp?id=121</link>
			<title><![CDATA[有关从 Flash 应用程序迁移到 ActionScript 3.0 的提示]]></title>
			<author>support@jovey.net(追意)</author>
			<category><![CDATA[前端技术]]></category>
			<pubDate>Tue,02 Sep 2008 17:13:30 +0800</pubDate>
			<guid>http://www.jovey.net/blog/default.asp?id=121</guid>
		<description><![CDATA[Adobe Flash CS3 Professional 引入了很多优秀的新功能, 包括 ActionScript 3.0 编程语言和 ActionScript 3.0 FLA 文件格式。 本文是我转向使用 ActionScript 3.0 的过程中注解和反思的总结。 我还提供了以下问题的解决方案: <br/><br/>关于影片剪辑处理的更改 <br/>关于下载数据、内容和元件的更改 <br/>关于 ActionScript 3.0 中构建对象类的更改 <br/>关于影片剪辑处理的更改以下注解解决如何处理影片剪辑的问题: <br/><br/>1. 显示对象与影片剪辑<br/>我在 ActionScript 3.0 注意到的第一个地方就是 MovieClip API。 在 ActionScript 3.0 中, MovieClip API 不再包含我经常使用的多数命令。 我发现有一个新的模型用于画面对象, 其中影片剪辑作为画面对象容器, 为便于控制保留了注册项列表。 MovieClip API 现在主要用于反转时间轴。<br/><br/>在 ActionScript 3.0 中, 可以使用 addChild 方法查看显示在舞台上的画面对象。 例如, 假设您要从“库”创建“组合框”组件的实例。 要查看显示在舞台上的实例, 您需要编写以下代码: <br/><br/>import fl.controls.ComboBox;<br/> <br/>var myCombo:ComboBox = new ComboBox();<br/>addChild(myCombo);2. 实例验证<br/>我发现了 ActionScript 3.0 类中处理实例方式的一些不同之处。 在创作期间置于舞台的实例自动将其实例名称与其影片剪辑容器关联, 名称在 ActionScript 3.0 类中可用。 像在 ActionScript 2.0 中一样在类中声明名称会触发编译器错误。 反过来, 我也发现当针对不存在的实例设置属性时, 编译器也会报告错误。<br/><br/>要验证未定义的实例, 请使用 getChildByName 方法, 如以下代码所示: <br/><br/>var myInstance = getChildByName(&#34;instanceNameInQuestion&#34;);<br/>if( myInstance!= null )<br/>{<br/>&nbsp;&nbsp; // Then do something...<br/>}3. 影片剪辑 (画面对象) 属性更改<br/>在 ActionScript 3.0 中, 下划线 (_) 已从属性名称中去掉。 在某些情况下, 为常用属性设计值的主要也已更新。<br/><br/>影片剪辑的 alpha 属性现在的设置范围为 0-1 而不是 0-100。 例如, 50% 不透明应设置为: <br/><br/>myInstance.alpha = 0.5;画面对象的 scaleX 和 scaleY 属性现在以类似方式设置。 例如, 150% 正常缩放应设置为: <br/><br/>myInstance.scaleX = 1.5;<br/>myInstance.scaleY = 1.5;4. this, _root, _parent, and _global<br/>this 别名可用于 ActionScript 3.0 中, 其行为与 ActionScript 的先前版本一样。 _global 路径在 ActionScript 3.0 中不存在。 _parent 可作为任何画面对象的父属性来访问。 _root 路径不再存在, 但使用舞台属性可以产生同样的结果。<br/><br/>5. 处理深度<br/>我很快发现, swapDepths 和 getNextHighestDepth 在 ActionScript 3.0 不复存在。 作为替代, 您要使用与影片剪辑容器关联的 DisplayObjectContainer 方法。 ActionScript 3.0 中的术语基于子对象列表中的画面对象“索引”, 而不是“深度”概念。<br/><br/>要将 myInstance 剪辑发送以堆序列的顶部, 请使用以下代码: <br/><br/>setChildIndex(myInstance, numChildren - 1);6. 使用 Drawing API<br/>与 MovieClip API 的其他更改一样, 动态 Drawing API 已移动到画面对象的图形属性。 除新位置外, 其使用过程相同 - 有几处明显的增强。<br/><br/>以下代码显示如何动态画出矩形, 然后将此矩形作为遮罩应用到其他实例。 遮罩对象没有时间轴, 因此作为子画面而不是影片剪辑来创建: <br/><br/>import flash.display.Sprite;<br/> <br/>// Cr&#101;ate mask<br/>var maskArea = new Sprite();<br/>maskArea.graphics.beginFill(0xFF0000);<br/>maskArea.graphics.drawRect(-29.5, -22.5, 59, 46);<br/>addChild(maskArea);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>// Apply mask<br/>myInstance.mask = maskArea;注: 在考查以前与 MovieClip 对象关联的常用任务时, 请尝试在浏览 ActionScript 3.0 对象时考查 DisplayObject 类。 有关深度控制和画面对象管理的更多信息, 请参见文档中关于 DisplayObjectContainer 类的说明。<br/><br/>关于下载数据、内容和元件的更改以下注解针对载入图像、服务器数据、元件和 URL 的载入: <br/><br/>7. 载入图像和 SWF<br/>图像和 SWF 文件的载入不再通过 loadMovie 命令或 MovieClipLoader 类进行。 而是使用 URLRequest 类和 Loader 类来完成此任务。<br/><br/>以下代码显示图像载入器脚本的骨架: <br/><br/>import flash.display.Loader;<br/>import flash.net.URLRequest;<br/> <br/>var request:URLRequest = new URLRequest(&#34;img/image1.jpg&#34;);<br/>var loader:Loader = new Loader();<br/>loader.load(request);<br/>addChild(loader);8. 载入服务器数据和 XML<br/>使用新的 ActionScript 3.0 XML 功能和新的 URLLoader 类, 我发现 XML 数据源的使用比以前容易得多。<br/><br/>以下示例显示如何载入 XML 文件并响应数据载入过程的完成: <br/><br/>import flash.display.URLLoader;<br/>import flash.net.URLRequest;<br/>import flash.events.Event;<br/> <br/>var loader = new URLLoader();<br/>loader.load(new URLRequest(&#34;conf/settings.xml&#34;));<br/> <br/>function onDataHandler(event:Event):void<br/>{<br/>&nbsp;&nbsp; if((event.target as URLLoader) != null )<br/>&nbsp;&nbsp; {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var settingsXML = new XML(loader.data);<br/>&nbsp;&nbsp; }<br/>}<br/>loader.addEventListener(Event.COMPLETE, onDataHandler);9. 显式载入元件<br/>attachMovie 命令和链接标识符在 ActionScript 3.0 中不复存在。 有两种方法从库载入元件。 两种方法都需要您为目标元件打开“链接”属性中的“为 ActionScript 导入”选项。 由于您不再添加标识符, 必须使用类名称处理所有内容。 如果要附加的元件没有自定义类, 请使用默认情况下插入的元件名称。 这种情况下, Flash 使用元件的名称为您创建一个骨架类。 在“链接”属性中设置类名称后, 您将必须确定类名称是显式已知还是动态提供。<br/><br/>当类名称与显示已知的元件关联时, 使用以下代码方案: <br/><br/>var myInstance = new MyClassName();<br/>addChild(myInstance);注: 所有实例均使用 ActionScript 3.0 中的新关键字创建。<br/><br/>10. 动态载入元件<br/>使用新关键字非常容易, 也是一种不错的脚本约定, 但仅适用于显示知道待实例化类的名称这种情况。 在构建模板时, 我发现我在尝试实例化一个类的位置, 该类的名称通过 XML 字符串动态提供或使用某种命名约定。 在这些情况下, 我使用为动态创建元件实例发现的第二种解决方案。<br/><br/>当类的名称不是显式已知时, 使用 UILoader 类, 如以下代码所示: <br/><br/>import fl.containers.UILoader;<br/> <br/>// Attach movie<br/>var myInstance = new UILoader();<br/>myInstance.scaleContent = false;<br/>myInstance.source = &#34;myClassName&#34;;;<br/>addChild(myInstance);11. 载入 URL<br/>getURL 命令在 ActionScript 3.0 中不复存在。 要调用 URL, 需要创建一个 URLRequest 实例, 然后调用 navigateToUrl 方法。 以下 try 声明显示 ActionScript 3.0 异常处理的错误处理类型; 它显示如何调用 URL: <br/><br/>import flash.net.*;<br/> <br/>var url = &#34;&#34;;<br/>var request:URLRequest = new URLRequest(url);<br/>try {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp; navigateToURL(request);<br/>}<br/>catch (e:Error) {<br/>&nbsp;&nbsp; // Handle error...<br/>}关于 ActionScript 3.0 中构建对象类的更改以下注解针对 package 关键字、数据类型设置与类型检查、关于事件处理的更改, 可保证填充事件的对象属性: <br/><br/>12. package 关键字<br/>ActionScript 3.0 类的结构与 ActionScript 2.0 类区别不大。 也许, 最大的结构区别在于使用 package 关键字启动 ActionScript 3.0 文件。<br/><br/>如果类 (myClass) 保存到名为 myCode 的文件夹中, 则类文件的结构类似于: <br/><br/>package myCode<br/>{<br/>&nbsp;&nbsp; import flash.display.MovieClip;<br/> <br/>&nbsp;&nbsp; public class myClass extends MovieClip<br/>&nbsp;&nbsp; {<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;function myClass(){<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // write out class as usual from here...<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp; }<br/>}13. 数据类型确定与类型检查<br/>ActionScript 3.0 包含一些新的运算符, 可用于数据类型确定、类型检查和类型转换。 当我使用事件或扫描画面对象以查找特定类型时, 我发现这些运算符非常有用。<br/><br/>要在编译器认为实例不是影片剪辑而将其转换为影片剪辑, 请使用 as 关键字, 如下所示: <br/><br/>(loader.content as MovieClip).play();要检查对象是否为特定类型的类, 请使用 is 关键字, 如下所示: <br/><br/>if( myInstance is myClass )<br/>{<br/>&nbsp;&nbsp; // do something...<br/>}注: is 运算符替代 ActionScript 以前版本中的 instanceof 运算符。<br/><br/>14. 关于事件处理的更改<br/>在 ActionScript 3.0 中, 事件有了新的发展。 格式对比以前的版本有很大的区别, 但语法变化很小。 在对象实例中封装事件句柄函数不再被认为是最佳实践。<br/><br/>以下代码显示如何将鼠标句柄指派给按钮: <br/><br/>import flash.events.MouseEvent;<br/>function clickHandler(event:MouseEvent):void<br/>{<br/>&nbsp;&nbsp; // Handle event here...<br/>}<br/>addEventListener(MouseEvent.CLICK, clickHandler);15. 确保事件的目标属性已填充<br/>我发现, 在 ActionScript 3.0 中创建自定义控件非常容易。 但是, 在通过自定义控件侦听事件时遇到了问题。 在开发应用程序时, 我经常在一个事件句柄函数中处理来自多个组件的事件。 我还经常将事件对象的目标属性作为一种引用方式, 向回引用播放事件的对象。 我遇到的问题起因于事件对象的目标属性作为空值到达事件句柄函数。 由于我无法向回引用原始对象, 我设置动态环境非常困难。<br/><br/>通过 Flash 用户界面组件代码适当深入挖掘后, 我发现还其他参数与 addEventListener 命令关联。 我发布了目标属性为空的原因: 事件系统在将目标引用发送到我的事件句柄时删除了此引用。 解决此问题的方法就是通过调整显示在 addEventListener 命令末尾的可选参数来更改不适当的设置组。<br/><br/>我将以下代码放入自定义按钮控件, 以确保事件的目标属性保持填充状态: <br/><br/>import flash.events.MouseEvent;<br/>function clickHandler(event:MouseEvent):void<br/>{<br/>&nbsp;&nbsp; // Do something on click...<br/>}<br/>addEventListener(MouseEvent.CLICK,clickHandler,false,0,true);请注意, 最后一个参数设置为 true。 这就是导致事件系统将引用留给事件目标的设置。<br/>]]></description>
		</item>
		
</channel>
</rss>
