<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[零度空间]]></title> 
<link>http://www.206c.net/blog/index.php</link> 
<description><![CDATA[笑看人生]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[零度空间]]></copyright>
<item>
<link>http://www.206c.net/blog/post/90/</link>
<title><![CDATA[jQuery.ajax [options] -- 1.4]]></title> 
<author>零度溫柔 &lt;nickdraw@qq.com&gt;</author>
<category><![CDATA[Javascript]]></category>
<pubDate>Fri, 27 Aug 2010 02:51:21 +0000</pubDate> 
<guid>http://www.206c.net/blog/post/90/</guid> 
<description>
<![CDATA[ 
	<span style="color: #FF4500;">通过 HTTP 请求加载远程数据。</span><br/><br/><span style="color: #666666;">jQuery 底层 AJAX 实现。简单易用的高层实现见 $.get, $.post 等。$.ajax() 返回其创建的 XMLHttpRequest 对象。大多数情况下你无需直接操作该函数，除非你需要操作不常用的选项，以获得更多的灵活性。 <br/><br/>最简单的情况下，$.ajax()可以不带任何参数直接使用。 </span><br/><br/><span style="color: #FF4500;">注意，所有的选项都可以通过$.ajaxSetup()函数来全局设置。 </span><br/><br/><strong>回调函数 </strong><br/><br/><span style="color: #666666;">如果要处理$.ajax()得到的数据，则需要使用回调函数。beforeSend、error、dataFilter、success、complete。 </span><br/><br/><br/><span style="color: #8B0000;">1. beforeSend 在发送请求之前调用，并且传入一个XMLHttpRequest作为参数。<br/>2. error 在请求出错时调用。传入XMLHttpRequest对象，描述错误类型的字符串以及一个异常对象（如果有的话）<br/>3. dataFilter 在请求成功之后调用。传入返回的数据以及&quot;dataType&quot;参数的值。并且必须返回新的数据（可能是处理过的）传递给success回调函数。<br/>4. success 当请求之后调用。传入返回后的数据，以及包含成功代码的字符串。<br/>5. complete 当请求完成之后调用这个函数，无论成功或失败。传入XMLHttpRequest对象，以及一个包含成功或错误代码的字符串。</span><br/><br/><strong>数据类型</strong> <br/><br/><span style="color: #666666;">$.ajax()函数依赖服务器提供的信息来处理返回的数据。如果服务器报告说返回的数据是XML，那么返回的结果就可以用普通的XML方法或者jQuery的选择器来遍历。如果见得到其他类型，比如HTML，则数据就以文本形式来对待。 <br/><br/>通过dataType选项还可以指定其他不同数据处理方式。除了单纯的XML，还可以指定 html、json、jsonp、script或者text。 <br/><br/>其中，text和xml类型返回的数据不会经过处理。数据仅仅简单的将XMLHttpRequest的responseText或responseHTML属性传递给success回调函数， <br/><br/>注意，我们必须确保网页服务器报告的MIME类型与我们选择的dataType所匹配。比如说，XML的话，服务器端就必须声明 text/xml 或者 application/xml 来获得一致的结果。 <br/><br/>如果指定为html类型，任何内嵌的JavaScript都会在HTML作为一个字符串返回之前执行。类似的，指定script类型的话，也会先执行服务器端生成JavaScript，然后再把脚本作为一个文本数据返回。 <br/><br/>如果指定为json类型，则会把获取到的数据作为一个JavaScript对象来解析，并且把构建好的对象作为结果返回。为了实现这个目的，他首先尝试使用JSON.parse()。如果浏览器不支持，则使用一个函数来构建。JSON数据是一种能很方便通过JavaScript解析的结构化数据。如果获取的数据文件存放在远程服务器上（域名不同，也就是跨域获取数据），则需要使用jsonp类型。使用这种类型的话，会创建一个查询字符串参数 callback=? ，这个参数会加在请求的URL后面。服务器端应当在JSON数据前加上回调函数名，以便完成一个有效的JSONP请求。如果要指定回调函数的参数名来取代默认的callback，可以通过设置$.ajax()的jsonp参数。 <br/><br/>注意，JSONP是JSON格式的扩展。他要求一些服务器端的代码来检测并处理查询字符串参数。更多信息可以参阅 最初的文章。 <br/><br/>如果指定了script或者jsonp类型，那么当从服务器接收到数据时，实际上是用了&lt;script&gt;标签而不是XMLHttpRequest对象。这种情况下，$.ajax()不再返回一个XMLHttpRequest对象，并且也不会传递事件处理函数，比如beforeSend。 </span><br/><strong>发送数据到服务器 </strong><br/><br/><span style="color: #666666;">默认情况下，Ajax请求使用GET方法。如果要使用POST方法，可以设定type参数值。这个选项也会影响data选项中的内容如何发送到服务器。 </span><br/><br/><span style="color: #666666;">data选项既可以包含一个查询字符串，比如 key1=value1&amp;key2=value2 ，也可以是一个映射，比如 &#123;key1: &#039;value1&#039;, key2: &#039;value2&#039;&#125; 。如果使用了后者的形式，则数据再发送器会被转换成查询字符串。这个处理过程也可以通过设置processData选项为false来回避。如果我们希望发送一个XML对象给服务器时，这种处理可能并不合适。并且在这种情况下，我们也应当改变contentType选项的值，用其他合适的MIME类型来取代默认的 application/x-www-form-urlencoded 。 </span><br/><strong>高级选项 </strong><br/><br/><span style="color: #008080;">global选项用于阻止响应注册的回调函数，比如.ajaxSend，或者ajaxError，以及类似的方法。这在有些时候很有用，比如发送的请求非常频繁且简短的时候，就可以在ajaxSend里禁用这个。更多关于这些方法的详细信息，请参阅下面的内容。 <br/><br/>如果服务器需要HTTP认证，可以使用用户名和密码可以通过username和password选项来设置。 <br/><br/>Ajax请求是限时的，所以错误警告被捕获并处理后，可以用来提升用户体验。请求超时这个参数通常就保留其默认值，要不就通过jQuery.ajaxSetup来全局设定，很少为特定的请求重新设置timeout选项。 <br/><br/>默认情况下，请求总会被发出去，但浏览器有可能从他的缓存中调取数据。要禁止使用缓存的结果，可以设置cache参数为false。如果希望判断数据自从上次请求后没有更改过就报告出错的话，可以设置ifModified为true。 <br/><br/>scriptCharset允许给&lt;script&gt;标签的请求设定一个特定的字符集，用于script或者jsonp类似的数据。当脚本和页面字符集不同时，这特别好用。 <br/><br/>Ajax的第一个字母是asynchronous的开头字母，这意味着所有的操作都是并行的，完成的顺序没有前后关系。$.ajax()的async参数总是设置成true，这标志着在请求开始后，其他代码依然能够执行。强烈不建议把这个选项设置成false，这意味着所有的请求都不再是异步的了，这也会导致浏览器被锁死。 <br/><br/>$.ajax函数返回他创建的XMLHttpRequest对象。通常jQuery只在内部处理并创建这个对象，但用户也可以通过xhr选项来传递一个自己创建的xhr对象。返回的对象通常已经被丢弃了，但依然提供一个底层接口来观察和操控请求。比如说，调用对象上的.abort()可以在请求完成前挂起请求。</span><br/><strong>参数：</strong>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #DC143C;">options (可选)&nbsp;&nbsp;</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #4169E1;">Object </span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #008000;">//AJAX 请求设置。所有选项都是可选的。</span><br/><br/><strong>选项：</strong>&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #DC143C;">async&nbsp;&nbsp;</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #4169E1;">Boolean </span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #008000;">//(默认: true) 默认设置下，所有请求均为异步请求。如果需要发送同步请求，请将此选项设置为 false。注意，同步请求将锁住浏览器，用户其它操作必须等待请求完成才可以执行。</span><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #DC143C;">beforeSend(XHR) </span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #4169E1;">Function</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #008000;">//发送请求前可修改 XMLHttpRequest 对象的函数，如添加自定义 HTTP 头。XMLHttpRequest 对象是唯一的参数。这是一个 Ajax 事件。如果返回false可以取消本次ajax请求。</span><br/><textarea name="code" class="JS" rows="15" cols="100">function (XMLHttpRequest) &#123;
&nbsp;&nbsp;&nbsp;&nbsp;this; // 调用本次AJAX请求时传递的options参数
&#125;</textarea><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #DC143C;">cache </span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #4169E1;">Boolean</span><br/><span style="color: #008000;">//(默认: true,dataType为script和jsonp时默认为false) jQuery 1.2 新功能，设置为 false 将不缓存此页面。</span><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #DC143C;">complete(XHR, TS) </span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #4169E1;">Function</span>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000;">//请求完成后回调函数 (请求成功或失败之后均调用)。参数： XMLHttpRequest 对象和一个描述成功请求类型的字符串。 Ajax 事件。</span> <br/><textarea name="code" class="JS" rows="15" cols="100">function (XMLHttpRequest, textStatus) &#123;
&nbsp;&nbsp;&nbsp;&nbsp;this; // 调用本次AJAX请求时传递的options参数
&#125;</textarea><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #DC143C;">contentType</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #4169E1;">String </span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000;">//(默认: &quot;application/x-www-form-urlencoded&quot;) 发送信息至服务器时内容编码类型。默认值适合大多数情况。如果你明确地传递了一个content-type给 $.ajax() 那么他必定会发送给服务器（即使没有数据要发送）</span><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #DC143C;">context&nbsp;&nbsp;</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #4169E1;">Object </span>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000;">//这个对象用于设置Ajax相关回调函数的上下文。也就是说，让回调函数内this指向这个对象（如果不设定这个参数，那么this就指向调用本次AJAX请求时传递的options参数）。比如指定一个DOM元素作为context参数，这样就设置了success回调函数的上下文为这个DOM元素。就像这样：</span><br/><textarea name="code" class="JS" rows="15" cols="100">$.ajax(&#123; url: &quot;test.html&quot;, context: document.body, success: function()&#123;
&nbsp;&nbsp;&nbsp;&nbsp;$(this).addClass(&quot;done&quot;);
&#125;&#125;);</textarea><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #DC143C;">data&nbsp;&nbsp;</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #4169E1;">Object,String</span>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000;">//发送到服务器的数据。将自动转换为请求字符串格式。GET 请求中将附加在 URL 后。查看 processData 选项说明以禁止此自动转换。必须为 Key/Value 格式。如果为数组，jQuery 将自动为不同值对应同一个名称。如 &#123;foo:[&quot;bar1&quot;, &quot;bar2&quot;]&#125; 转换为 &#039;&amp;foo=bar1&amp;foo=bar2&#039;。</span><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #DC143C;">dataFilter </span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #4169E1;">Function</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #008000;">//给Ajax返回的原始数据的进行预处理的函数。提供data和type两个参数：data是Ajax返回的原始数据，type是调用jQuery.ajax时提供的dataType参数。函数返回的值将由jQuery进一步处理。</span><br/><textarea name="code" class="JS" rows="15" cols="100">function (data, type) &#123;
&nbsp;&nbsp;&nbsp;&nbsp;// 对Ajax返回的原始数据进行预处理
&nbsp;&nbsp;&nbsp;&nbsp;return data&nbsp;&nbsp;// 返回处理后的数据
&#125;</textarea><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #DC143C;">dataType</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #4169E1;">String</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000;">//预期服务器返回的数据类型。如果不指定，jQuery 将自动根据 HTTP 包 MIME 信息来智能判断，比如XML MIME类型就被识别为XML。在1.4中，JSON就会生成一个JavaScript对象，而script则会执行这个脚本。随后服务器端返回的数据会根据这个值解析后，传递给回调函数。可用值: <br/><br/>&quot;xml&quot;: 返回 XML 文档，可用 jQuery 处理。<br/><br/>&quot;html&quot;: 返回纯文本 HTML 信息；包含的script标签会在插入dom时执行。<br/><br/>&quot;script&quot;: 返回纯文本 JavaScript 代码。不会自动缓存结果。除非设置了&quot;cache&quot;参数。&#039;&#039;&#039;注意：&#039;&#039;&#039;在远程请求时(不在同一个域下)，所有POST请求都将转为GET请求。(因为将使用DOM的script标签来加载)<br/><br/>&quot;json&quot;: 返回 JSON 数据 。<br/><br/>&quot;jsonp&quot;: JSONP 格式。使用 JSONP 形式调用函数时，如 &quot;myurl?callback=?&quot; jQuery 将自动替换 ? 为正确的函数名，以执行回调函数。<br/><br/>&quot;text&quot;: 返回纯文本字符串</span><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #DC143C;">error</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #4169E1;">Function</span>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000;">//(默认: 自动判断 (xml 或 html)) 请求失败时调用此函数。有以下三个参数：XMLHttpRequest 对象、错误信息、（可选）捕获的异常对象。如果发生了错误，错误信息（第二个参数）除了得到null之外，还可能是&quot;timeout&quot;, &quot;error&quot;, &quot;notmodified&quot; 和 &quot;parsererror&quot;。Ajax 事件。</span><br/><textarea name="code" class="JS" rows="15" cols="100">function (XMLHttpRequest, textStatus, errorThrown) &#123;
&nbsp;&nbsp;&nbsp;&nbsp;// 通常 textStatus 和 errorThrown 之中
&nbsp;&nbsp;&nbsp;&nbsp;// 只有一个会包含信息
&nbsp;&nbsp;&nbsp;&nbsp;this; // 调用本次AJAX请求时传递的options参数
&#125;</textarea><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #DC143C;">global</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #4169E1;">Boolean</span>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000;">//(默认: true) 是否触发全局 AJAX 事件。设置为 false 将不会触发全局 AJAX 事件，如 ajaxStart 或 ajaxStop 可用于控制不同的 Ajax 事件。</span><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #DC143C;">ifModified </span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #4169E1;">Boolean</span>&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #008000;">//(默认: false) 仅在服务器数据改变时获取新数据。使用 HTTP 包 Last-Modified 头信息判断。在jQuery 1.4中，他也会检查服务器指定的&#039;etag&#039;来确定数据没有被修改过。</span><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #DC143C;">jsonp</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #4169E1;">String</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000;">//在一个jsonp请求中重写回调函数的名字。这个值用来替代在&quot;callback=?&quot;这种GET或POST请求中URL参数里的&quot;callback&quot;部分，比如&#123;jsonp:&#039;onJsonPLoad&#039;&#125;会导致将&quot;onJsonPLoad=?&quot;传给服务器。</span><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #DC143C;">jsonpCallback</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #4169E1;">String</span>&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #008000;">//为jsonp请求指定一个回调函数名。这个值将用来取代jQuery自动生成的随机函数名。这主要用来让jQuery生成度独特的函数名，这样管理请求更容易，也能方便地提供回调函数和错误处理。你也可以在想让浏览器缓存GET请求的时候，指定这个回调函数名。</span><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #DC143C;">password&nbsp;&nbsp;</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #4169E1;">String</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #008000;">// 用于响应HTTP访问认证请求的密码</span><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #DC143C;">processData</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #4169E1;">Boolean</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000;">//(默认: true) 默认情况下，通过data选项传递进来的数据，如果是一个对象(技术上讲只要不是字符串)，都会处理转化成一个查询字符串，以配合默认内容类型 &quot;application/x-www-form-urlencoded&quot;。如果要发送 DOM 树信息或其它不希望转换的信息，请设置为 false。</span><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #DC143C;">scriptCharset </span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #4169E1;">String</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #008000;">//只有当请求时dataType为&quot;jsonp&quot;或&quot;script&quot;，并且type是&quot;GET&quot;才会用于强制修改charset。通常只在本地和远程的内容编码不同时使用。</span><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #DC143C;">success</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #4169E1;">Function</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #008000;">//请求成功后的回调函数。参数：由服务器返回，并根据dataType参数进行处理后的数据；描述状态的字符串。 Ajax 事件。 </span><br/><textarea name="code" class="JS" rows="15" cols="100">function (data, textStatus) &#123;
&nbsp;&nbsp;&nbsp;&nbsp;// data 可能是 xmlDoc, jsonObj, html, text, 等等...
&nbsp;&nbsp;&nbsp;&nbsp;this; // 调用本次AJAX请求时传递的options参数
&#125;</textarea><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #DC143C;">traditional </span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #4169E1;">Boolean</span>&nbsp;&nbsp; <span style="color: #008000;">//如果你想要用传统的方式来序列化数据，那么就设置为true。请参考工具分类下面的jQuery.param 方法。</span><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #DC143C;">timeout </span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #4169E1;">Number</span>&nbsp;&nbsp; <span style="color: #008000;">//设置请求超时时间（毫秒）。此设置将覆盖全局设置。</span><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #DC143C;">type </span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #4169E1;">String</span>&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #008000;">//(默认: &quot;GET&quot;) 请求方式 (&quot;POST&quot; 或 &quot;GET&quot;)， 默认为 &quot;GET&quot;。注意：其它 HTTP 请求方法，如 PUT 和 DELETE 也可以使用，但仅部分浏览器支持。</span><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #DC143C;">url </span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #4169E1;">String</span>&nbsp;&nbsp; <span style="color: #008000;">//(默认: 当前页地址) 发送请求的地址。</span><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #DC143C;">username</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #4169E1;">String</span>&nbsp;&nbsp; <span style="color: #008000;">//用于响应HTTP访问认证请求的用户名</span><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #DC143C;">xhr</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #4169E1;">Function</span>&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #008000;">//需要返回一个XMLHttpRequest 对象。默认在IE下是ActiveXObject 而其他情况下是XMLHttpRequest 。用于重写或者提供一个增强的XMLHttpRequest 对象。这个参数在jQuery 1.3以前不可用。</span><br/><br/><strong>示例</strong><br/><br/>描述:加载并执行一个 JS 文件。<br/>jQuery 代码:<br/><textarea name="code" class="JS" rows="15" cols="100">$.ajax(&#123;
&nbsp;&nbsp;type: &quot;GET&quot;,
&nbsp;&nbsp;url: &quot;test.js&quot;,
&nbsp;&nbsp;dataType: &quot;script&quot;
&#125;);</textarea><br/><br/>描述:保存数据到服务器，成功时显示信息。<br/>jQuery 代码:<br/><textarea name="code" class="JS" rows="15" cols="100">$.ajax(&#123;
&nbsp;&nbsp; type: &quot;POST&quot;,
&nbsp;&nbsp; url: &quot;some.php&quot;,
&nbsp;&nbsp; data: &quot;name=John&amp;location=Boston&quot;,
&nbsp;&nbsp; success: function(msg)&#123;
&nbsp;&nbsp;&nbsp;&nbsp; alert( &quot;Data Saved: &quot; + msg );
&nbsp;&nbsp; &#125;
&#125;);</textarea><br/><br/>描述:装入一个 HTML 网页最新版本。<br/>jQuery 代码:<br/><textarea name="code" class="JS" rows="15" cols="100">$.ajax(&#123;
&nbsp;&nbsp;url: &quot;test.html&quot;,
&nbsp;&nbsp;cache: false,
&nbsp;&nbsp;success: function(html)&#123;
&nbsp;&nbsp;&nbsp;&nbsp;$(&quot;#results&quot;).append(html);
&nbsp;&nbsp;&#125;
&#125;);</textarea><br/><br/>描述:同步加载数据。发送请求时锁住浏览器。需要锁定用户交互操作时使用同步方式。<br/>jQuery 代码:<br/><textarea name="code" class="JS" rows="15" cols="100">var html = $.ajax(&#123;
&nbsp;&nbsp;url: &quot;some.php&quot;,
&nbsp;&nbsp;async: false
 &#125;).responseText;</textarea><br/><br/>描述:发送 XML 数据至服务器。设置 processData 选项为 false，防止自动转换数据格式。<br/>jQuery 代码:<br/><textarea name="code" class="JS" rows="15" cols="100">var xmlDocument = [create xml document];
 $.ajax(&#123;
&nbsp;&nbsp; url: &quot;page.php&quot;,
&nbsp;&nbsp; processData: false,
&nbsp;&nbsp; data: xmlDocument,
&nbsp;&nbsp; success: handleResponse
 &#125;);</textarea><br/><br/>
]]>
</description>
</item><item>
<link>http://www.206c.net/blog/post/89/</link>
<title><![CDATA[[ADC]Adobe Flash Catalyst 最佳实践]]></title> 
<author>零度溫柔 &lt;nickdraw@qq.com&gt;</author>
<category><![CDATA[Flash Catalyst &amp; Flex]]></category>
<pubDate>Tue, 20 Jul 2010 09:34:02 +0000</pubDate> 
<guid>http://www.206c.net/blog/post/89/</guid> 
<description>
<![CDATA[ 
	Adobe Flash Catalyst 是个新的专业交互设计工具，使用它，您可以不用写代码，快速的创建应用程序接口，和交互内容。<br/><br/>通常，我们使用Flash Catalyst时，你会觉得工作在整个开发团队的边缘，并且很难将你的Flash Catalyst项目文件与团队的其他成员分享，以便于他们可以继续开发这个项目，或者使用其中你定义的的组件皮肤。<br/><br/>越接近你使用Illustrator设计和构建的艺术原创稿，你的FC项目就越具备冲击力，随之而来的，这种冲击力将会延续到资源和皮肤的质量和有效性上，使得开发者使用这些资源变为可能。<br/><br/>在这篇文章中，我将会提供一些示意和提示以便于你可以更容易地结构化地将设计的资源从Illustrator里移动到 Flash Catalyst里。 我同样会强调一些Flash Catalyst的最佳实践，这将会确保你可以用最少的重构时间来让你的资源可以继续在Flash Builder里开发。<br/><br/>使用Illustrator<br/><br/>注意：这篇文章主要集中在使用Adobe Illustrator做艺术设计之后为Flash Catalyst使用上。 你也可以使用Adobe Photoshop或者Adobe Fireworks来做设计和创作；下面很多提示和说明在这些工具中同样是适用的，虽然我不准备在这里介绍他们的使用方法。<br/><br/>设计好你的Illustrator文件结构<br/><br/>你可以整理好你的Illustrator文件结构，这样可以使应用程序中不同的功能模块区域和用户界面被定义在分开的层和子层中（见图1）。<br/><br/><a href="http://www.206c.net/blog/attachment.php?fid=177" class="highslide" onclick="return hs.expand(this)"><img src="http://www.206c.net/blog/attachment.php?fid=177" class="insertimage" alt="Highslide JS" title="点击图片放大" border="0" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/>图1 Illustrator 中的层面板（左）和Flash Catalyst中的层面板（右）。<br/><br/>你可以通过在你在Illustrator中指定逻辑结构和有意义的名字，使在Illustrator 中定义的层，子层，和组在Flash Catalyst中同样有效；在使用Flash Catalyst工作的时候你将会明白这个文件结构的用途。 这很重要，你需要在转换设计稿到组件时选定层和组，以及程序中不同功能区间之间的转换动画。<br/><br/>在单个画板上进行设计<br/><br/>Flash Catalyst不支持多画板设计，所以，比起在不同的画板上表现不同的功能区间和用户界面，使用一个单独的画板，但将不同的区间分布到不同的层里面，会比较好（见图2）。<br/><br/><a href="http://www.206c.net/blog/attachment.php?fid=178" class="highslide" onclick="return hs.expand(this)"><img src="http://www.206c.net/blog/attachment.php?fid=178" class="insertimage" alt="Highslide JS" title="点击图片放大" border="0" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/>图2 在Illustrator项目中的层面板定义了一个程序中的五个功能区间，例如背景层和前景层。<br/><br/>在图2中，背景图和前景在程序中保持一致（并且总是显示），每一个其他的顶级层表现了用户可以看到的不同的程序功能区间。<br/><br/>为每个部分都命名<br/><br/>就像给层和组命名一样，为Illustrator 文件中的每个独立图形和元素命名也是很重要的。 你也许会考虑在整个文件中使用共用命名策略，比如用“Button_name”来指定这些图形元件将会在随后转换成元件时，被转换成按钮，“Text_name”“TextInput_name”“Custom_name”,以此类推。<br/><br/>元素的命名并非一个正式的规范，但是使用命名策略会得到整个互动开发项目中的设计师和工程师的认可，这样会让所有人都知道如何在程序中使用这些组件，从而避免之后可能发生的混乱和返工。<br/><br/>不要链接外部的图片文件<br/><br/>在团队环境中，你很可能需要将你的Illustrator文件交付给一个使用Flash Catalyst工作的互动设计师；不要在Illustrator中链接外部文件，取而代之的是将它们置于Illustrator文件内部，这样你可以通过单个的文件做转换，并确保随后的设计师能在项目的随后工作中使用全部的资源。 Illustrator 中的图片和其他资源将会显示在Flash Catalyst中的Library面板中。<br/><br/>在你将图片导入进Illustrator之后，你要确定你执行了Object > Rasterize 选项来改善图片的显示效果。 在这个对话框中，为界面浏览选择72 DPI 、typically，你需要将背景设置为透明。<br/><br/>标记副本组件和资源的<br/><br/>在Illustrator中通常需要提取出多态的，重复的按钮，输入文本框，和其他的可视元素，以便于描绘整个程序界面的全景图形设计。 在Flash Catalyst中，你需要为每个美术设计定义一个单独的组件，但是，当是同样的设计的时候，就要避免定义多个组件。<br/><br/>比起来依赖于不重复的元件来做判断，不如考虑在Illustrator文件里为元件标记一个副本，这样你就可以很清楚的知道他们是不需要被重新定义的。<br/><br/>你可以考虑使用一个命名策略，例如用主设计上用“TextInput_Blue”标记这个组件，用“_textInput_Blue”来表示一个副本。 或者你也可以选择将所有副本组件的alpha值设置为40%（见图3）；这从视觉上表示这个组件不需要被重定义，你可以在Flash Catalyst里用一个库中的实例来置换它。<br/><br/><a href="http://www.206c.net/blog/attachment.php?fid=179" class="highslide" onclick="return hs.expand(this)"><img src="http://www.206c.net/blog/attachment.php?fid=179" class="insertimage" alt="Highslide JS" title="点击图片放大" border="0" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/>图3 上方的输入文本框定义了一个在Flash Catalyst中的组件。<br/><br/>使用“create outlines”来为文本添加滤镜和效果<br/><br/>虽然，Flash Catalyst在支持Illustrator文件格式方面做的很出色，但是你会发现，文本的滤镜和效果并没有像你预期的那样被渲染出来。如图4所示。<br/><br/><a href="http://www.206c.net/blog/attachment.php?fid=180" class="highslide" onclick="return hs.expand(this)"><img src="http://www.206c.net/blog/attachment.php?fid=180" class="insertimage" alt="Highslide JS" title="点击图片放大" border="0" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/>图4. 原始设计（左）和在导入到Flash Catalyst之后的效果（右）。<br/><br/>在这个例子里，你可以在Illustrator 使用“create outlines”选项解决这个问题，并为文本创建一个矢量的表现。 不过，这意味着，这个文本将变成不可编辑的了。<br/><br/>你可以将这种方法使用在那些你不准备绑定到你程序中的，较小数量的静态文本上，例如，标题，商标等等。<br/><br/>不要在Illustrator中定义所有组件区域<br/><br/>虽然你可以在Illustrator中定义所有的组件，但这没有什么意义，因为Flash Catalyst中同样提供了比较的全面的选项用于编辑文本和图形元件的属性，包括填充，渐变，和描边（见图5）.<br/><br/><a href="http://www.206c.net/blog/attachment.php?fid=181" class="highslide" onclick="return hs.expand(this)"><img src="http://www.206c.net/blog/attachment.php?fid=181" class="insertimage" alt="Highslide JS" title="点击图片放大" border="0" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/>图5 即将面世版本的Flash Catalyst中的属性面板。<br/><br/>你会因此发现在Illustrator 设计原稿和随后都可以很方便的做调整，一旦你将一个组件导入到Flash Catalyst中，就可以使用states面板来设置调整每一个区域的可见属性。<br/><br/>为数据列表组件定义一个单独的元素<br/><br/>当将原稿转换为Flash Catalyst中的数据列表组件时，你只需要指定一个单独的重复使用的列表选项。 如果你需要在Illustrator的用户界面中绘制出数据列表的全貌，你可以选择定义两种截然不同的区域：使用在Flash Catalyst中的独立版本，和一个包含了其余项的分散的组。(见图6)<br/><br/><a href="http://www.206c.net/blog/attachment.php?fid=182" class="highslide" onclick="return hs.expand(this)"><img src="http://www.206c.net/blog/attachment.php?fid=182" class="insertimage" alt="Highslide JS" title="点击图片放大" border="0" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/>图6. 为数据列表设计的填充项，下面的组表现出这个列表在Illustrator中看起来的样子。<br/><br/>这种方法可以利用组来排列和分隔这些选项在数据列表中的样子，但是最后在随后的开发中将他们移除。<br/><br/>Flash Catalyst<br/><br/>下面的一些点，是讲如何使用Flash Catalyst和你的团队一起工作了。<br/><br/>在基本规范上使用“Save as copy”<br/><br/>当你在Flash Catalyst中使用不同的方式进行过实验，并学习如何更好的使用这个新工具，你会发现使用“Save as copy”选项对频繁的使用是很有价值的。 在着手构建你的主项目结构时，这显得尤为重要，例如对组和层次做重大调整时，或者添加新的功能区间和定义过渡方式时。<br/><br/>如果有什么东西是不能在计划中完全确定的，你可以很快捷的恢复到之前这个文档保存的版本，然后尝试其他方式。<br/><br/>按照正确的顺序进行工作<br/><br/>当你把一个静态的设计原稿从Illustrator文件中导入进一个Flash Catalyst中的动态的富媒体网络应用时，按照正确的逻辑顺序开始工作就变得非常重要了。 你会喜欢这种方式，并在你以往的工作经验基础上适应它的。<br/><br/>将所有设计原稿中的东西转换为组件。（使用层面板中的 显示/隐藏 功能，显示程序在某个特定时间程序界面应该显示的东西。） <br/>创建一个自定义的，或者通用的组件，来定义一个程序的功能小模块（例如，为程序界面的表单创建一个自定义的组件，或者一个独立的窗口） <br/><br/><a href="http://www.206c.net/blog/attachment.php?fid=183" class="highslide" onclick="return hs.expand(this)"><img src="http://www.206c.net/blog/attachment.php?fid=183" class="insertimage" alt="Highslide JS" title="点击图片放大" border="0" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/>图7 这个表单在 Flash Catalyst中将被转化成一个自定义，或者通用的组件。<br/><br/>这个组在功能区域里面下的可见元件被引入到逻辑集合中;这在定义场景过渡时会显得特别有用，你可以成组的设置元素的属性，而不必一个个的去单独设置。（见图8） <br/><br/><a href="http://www.206c.net/blog/attachment.php?fid=184" class="highslide" onclick="return hs.expand(this)"><img src="http://www.206c.net/blog/attachment.php?fid=184" class="insertimage" alt="Highslide JS" title="点击图片放大" border="0" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/>图8. 成组的元素，使得通过时间线来操作他们变得更加容易。<br/><br/>使用自定义的组件和定义在组件上交互效果来创建过渡动画，将会带来组件区间的变化。 <br/>在某个时间点创建一个状态，对于每一个状态要注意以下几点: <br/>定义组件的位置，可见性，和出现效果。 <br/>使用时间线来指定新的状态和之前的状态之间的过渡。 <br/>在一个状态下定义元件的交互行为，这些行为将会触发程序状态的切换 <br/>使用优化过的图形<br/><br/>从Illustrator中导入过于复杂的矢量图形是一种不必要的开销，而且在Flash Player里渲染这些图形也会造成程序的性能问题。 如果在你的程序界面中，有这样的图形，并不需要运行时在其上做任何相应的改变，那么你可以在Flash Catalyst中使用转换为优化图形选项（见图9）。<br/><br/><a href="http://www.206c.net/blog/attachment.php?fid=185" class="highslide" onclick="return hs.expand(this)"><img src="http://www.206c.net/blog/attachment.php?fid=185" class="insertimage" alt="Highslide JS" title="点击图片放大" border="0" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/>图9 在复杂的矢量图形上使用转换为优化图形选项。<br/><br/>如果你想要矢量图形在被导入进Flash Catalyst中时自动被优化转换，你应该在Illustrator的原稿中将其定义为符号。<br/><br/>考虑组件的重用性<br/><br/>当在Flash Catalyst中做组件转换时，通常要为在Illustrator中定义的文本指定尺寸，例如按钮，单选框，和复选框。 如果你计划在别处重复使用这些组件，请确保在组件中延长文本框的尺寸以适应其他标签。（见图10）<br/><br/><br/><a href="http://www.206c.net/blog/attachment.php?fid=186" class="highslide" onclick="return hs.expand(this)"><img src="http://www.206c.net/blog/attachment.php?fid=186" class="insertimage" alt="Highslide JS" title="点击图片放大" border="0" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/>图10 调整单选按钮中的文本以适应组件。<br/><br/>定义有意义的状态名称<br/><br/>你在 Flash Catalyst中定义的状态名称，同样被使用在输出的程序代码中，这对于前端的开发团队是相当有价值的，因为这个名字说明了它应该被定义成怎样的组件。（图11）<br/><br/><a href="http://www.206c.net/blog/attachment.php?fid=187" class="highslide" onclick="return hs.expand(this)"><img src="http://www.206c.net/blog/attachment.php?fid=187" class="insertimage" alt="Highslide JS" title="点击图片放大" border="0" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/>图11 在Flash Catalyst中使用 Pages/States 面板做状态命名。<br/><br/>在任何情况下，状态名称都应该清楚的诠释用户在程序中那一个功能点上需要处理的事情，正在浏览的页面，或者其他有意义的叙述。<br/><br/>在库中重命名组件<br/><br/>跟状态命名一样，在库中为组件命名是广泛应用在整个程序代码编写和项目构建过程中的。 考虑到与前端开发团队沟通的关系，指定统一的命名规范对从互动设计到开发的过渡很有帮助。（见图12）<br/><br/><a href="http://www.206c.net/blog/attachment.php?fid=188" class="highslide" onclick="return hs.expand(this)"><img src="http://www.206c.net/blog/attachment.php?fid=188" class="insertimage" alt="Highslide JS" title="点击图片放大" border="0" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/>图12 TextInputSm和TextInputMd显而易见的表示小码和中码的输入文本组件；而RepeatedItem1和RepeatedItem2表达的就不是那么的清楚了。<br/><br/>使用代码视图来做优化<br/><br/>不，你并不需要是一个资深的程序员，你只需要注意几件事情就可以了。<br/><br/>首先，你要鉴别所有文本框使用的字体都是标准的系统字体（例如Arial），或者是你已经绑定在程序中的字体。（这将会增加程序的体积） 如果你在一些地方使用了非标准的字体，例如，一个标志或一个标题，也许最好返回到Illustrator中把他们转换为图形。<br/><br/>其次，从Illustrator 中导入的资源，其冗长的代码段中包含精确的路径，渐变，描边，这些会使得资源更加生动，在Flash Catalyst里，这些也是可以被优化的。 检查包含代码的组的名称，然后在设计视图中，找到art board上的这个组，选择转化为优化图形。<br/><br/>记住，这个转变仅仅作用在单个状态下<br/><br/>当你在程序中和组件里做完了这个设计转化之后，如果你要你做的改动作用于所有状态，你需要通知Flash Catalyst，如果你不通知，那么这个改变将只会作用于当前的状态。 右键单击要改动的元素，选择“Make Same in All Other States”，在做完改变之后所有状态下的组件就都随之更改了(见图13)；<br/><br/><a href="http://www.206c.net/blog/attachment.php?fid=189" class="highslide" onclick="return hs.expand(this)"><img src="http://www.206c.net/blog/attachment.php?fid=189" class="insertimage" alt="Highslide JS" title="点击图片放大" border="0" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/>图13 Make Same in All Other States选项确保任何修改都会被应用到所有的状态中。<br/><br/>在真实的浏览器环境中预览状态切换<br/><br/>虽然，你可以在Flash Catalyst中的时间轴上预览你定义的过渡动画，但将输出结果显示在参数真实的浏览器里无疑是最好的选择。（使用 File > Run Project 来做浏览）<br/><br/><br/>这是一篇来自Adobe开发者中心的文章，原文链接：http://www.adobe.com/devnet/flashcatalyst/articles/flash_catalyst_best_practices.html<br/><br/><br/>关于作者<br/>Andrew Shorten是一个Adobe的平台技术传道士，并热衷于改良优化，丰富的基于电脑的用户体验。 Andrew在富士通，为政府，企业客户做过网站，报刊，以及移动设备的用户界面开发。 此后，他在Macromedia，Microsoft和Adobe工作，期间，他作为设计师，开发工程师，网站代理和组织帮助他们实现丰富的，动人和成功的网站以及左面应用程序。<br/><br/>翻译：RIAMeeting翻译小组 王贺<br/>
]]>
</description>
</item><item>
<link>http://www.206c.net/blog/post/88/</link>
<title><![CDATA[零度空间个人简历系统V1.0.3]]></title> 
<author>零度溫柔 &lt;nickdraw@qq.com&gt;</author>
<category><![CDATA[闲言碎语]]></category>
<pubDate>Mon, 19 Jul 2010 08:43:36 +0000</pubDate> 
<guid>http://www.206c.net/blog/post/88/</guid> 
<description>
<![CDATA[ 
	早在09年初的时候就琢磨着做个简历系统, 本来打算自己用, 没想着开发多少功能. 也只有作品模块是动态添加的.<br/><br/>后来又很多网友问我是不是能拿出来共享下. 甚至有朋友打电话来说要买.... 而我知道这个版本肯定不能放出来. 因为不完善的后台, 更没有安装模块..&nbsp;&nbsp;不懂PHP的朋友肯定不能用...<br/><br/>最近抽时间完善了这个系统. 现在放出来共享. 希望有用.<br/>完整安装包:<br/>这个文件只能在登入之后下载。请先 <a href="http://www.206c.net/blog/login.php?job=register">注册</a> 或 <a href="http://www.206c.net/blog/login.php">登入</a><br/><br/>1.0.2->1.0.3升级说明:<br/>1. 下载最新包上传所有文件除install文件夹和indclude/Zero.Sqlcfg.php文件,其余覆盖原文件.<br/>2. 下载本升级文件上传至本程序根目录并运行.<br/><a href="attachment.php?fid=195">点击这里下载文件</a><br/><br/>2010.07.22&nbsp;&nbsp;更新:<br/>1. 修复目前"我很快乐"所提出的错误.<br/>2. 修复"快乐飞扬"所提出的作品修改页错误.<br/>请将压缩包解压覆盖原文件即可.<br/><br/><br/>本系统当前版本为1.0.3 -- 2010.07.24<br/>修复错误:<br/>1. 修复项目经验前台显示在Linux下读取数据错误.<br/>2. 修复在极少数情况下显示变量未定义错误.<br/>3. 修复安装时自定义表前缀错误.<br/>4. 修复上传图片时极少数情况下出现的错误.<br/><br/>功能升级:<br/>1. 增加缩略图自定义大小设置<br/>2. 增加添加作品时缩略图自动裁切功能.<br/>3. 增加批量上传图片功能.<br/>4. 增加附件多媒体功能.<br/>5. 调整个人信息管理模块和教育经历模块样式.<br/>6. 修改作品上传缩略图功能优化.<br/><br/>功能升级请关注本页面.<br/><br/>演示地址: <a href="http://www.206c.com/resume/" target="_blank">http://www.206c.com/resume/</a><br/><br/>
]]>
</description>
</item><item>
<link>http://www.206c.net/blog/post/87/</link>
<title><![CDATA[WEB 2.0 颜色搭配器. ]]></title> 
<author>零度溫柔 &lt;nickdraw@qq.com&gt;</author>
<category><![CDATA[WEB体验]]></category>
<pubDate>Tue, 13 Jul 2010 06:33:59 +0000</pubDate> 
<guid>http://www.206c.net/blog/post/87/</guid> 
<description>
<![CDATA[ 
	很久之前搞了个关于网页颜色搭配的东西. 一直没有放出来.<br/>今天拿出来和大家共享下.<br/><br/><a href="http://www.206c.net/blog/attachment.php?fid=175" class="highslide" onclick="return hs.expand(this)"><img src="http://www.206c.net/blog/attachment.php?fid=175" class="insertimage" alt="Highslide JS" title="点击图片放大" border="0" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/><br/><a href="../demo/color.php" target="_blank">请点我查看</a>
]]>
</description>
</item><item>
<link>http://www.206c.net/blog/post/86/</link>
<title><![CDATA[WEB 色值. 颜色对照表. ]]></title> 
<author>零度溫柔 &lt;nickdraw@qq.com&gt;</author>
<category><![CDATA[闲言碎语]]></category>
<pubDate>Tue, 13 Jul 2010 06:26:54 +0000</pubDate> 
<guid>http://www.206c.net/blog/post/86/</guid> 
<description>
<![CDATA[ 
	该表所有颜色来自于W3C的SVG颜色关键词，即X11的颜色列表，亦是CSS3颜色模块所指定的颜色。<br /><ol><li>第一列使用颜色名称作背景，该列不能显示颜色说明你的浏览器当前还不支持该名称关键词。 </li><li>第二列使用相应颜色数值作背景。 </li><li>第三列为颜色的正式英文名称。 </li><li>第四列为翻译的中文名称。 </li><li>第五列为16进制的RGB数值。 </li><li>第六列为十进制RGB数值。 </li><li>第七列为配色参考，有粗细字体作为相应颜色的配色参考。 </li><li>第八列按钮可以更改页面背景以供参考。 </li></ol><div id="NS2" class="NBox"><h2>标准颜色名称和RGB颜色值 </h2></div><p><a href="../demo/Color_Control.php" target="_blank" title="演示链接请点我">演示链接请点我</a><br /><br /></p>
]]>
</description>
</item><item>
<link>http://www.206c.net/blog/post/85/</link>
<title><![CDATA[全球唯一标识符 -- GUID]]></title> 
<author>零度溫柔 &lt;nickdraw@qq.com&gt;</author>
<category><![CDATA[Javascript]]></category>
<pubDate>Thu, 08 Jul 2010 04:13:46 +0000</pubDate> 
<guid>http://www.206c.net/blog/post/85/</guid> 
<description>
<![CDATA[ 
	<p>　　世界上的任何两台计算机都不会生成重复的 GUID 值。GUID 主要用于在拥有多个节点、多台计算机的网络或系统中，分配必须具有唯一性的标识符。在 Windows 平台上，GUID 应用非常广泛：注册表、类及接口标识、数据库、甚至自动生成的机器名、目录名等。</p><ul><li>Globally Unique Identifier（全球唯一标识符） 也称作 UUID(Universally Unique IDentifier)</li><li>GUID/UUID是通过特定算法产生的一个二进制长度为128位的数字</li><li>在空间上和时间上具有唯一性，保证同一时间不同地方产生的数字不同</li><li>在公元3400年以前产生的UUID/GUID与任何其他产生过的UUIDs/GUIDs都不相同</li><li>在需要GUID的时候，可以完全由算法自动生成，不需要一个权威机构来管理</li><li>GUID的长度固定，并且相对而言较短小，非常适合于排序、标识和存储</li></ul><p>如Word文档，创建一个唯一的标识，GUID值就是这个唯一的标识码。GUID广泛应用于微软的产品中，用于识别接口、复制品、记录以及其他对象。不同类型的对象对应不同的GUID值。例如，一个微软Access数据库使用的是16字节域为复制品创建一个唯一标识。<br /><br />微软的某种GUID值本质、形成GUID值方法以及由于GUID值产生的潜在弊端已经引起了保密性提倡者的关注。1999年3月，美国联邦商务委员会接到要求，对微软的GUID值使用进行调查。<br /><br />下面奉上一个可以生成GUID的脚本.<br /><br /></p><textarea name="code" class="html" rows="15" cols="100"> &lt;script type=&quot;text/javascript&quot;&gt; function NewGuid_ () &#123; var Guid = &quot;&quot;; for (var i=1; i&lt;=32; i++) &#123; var N = Math.floor(Math.random()*16.0).toString(16); Guid += N; if((i==8) &#124;&#124; (i==12) &#124;&#124; (i==16) &#124;&#124; (i==20)) &#123; Guid +=&quot;-&quot;; &#125; &#125; return Guid.toUpperCase(); &#125; document.write(NewGuid_()); &lt;/script&gt; </textarea>
]]>
</description>
</item><item>
<link>http://www.206c.net/blog/post/84/</link>
<title><![CDATA[全面兼容ie6,ie7,IE8,Firefox的CSS Hack写法]]></title> 
<author>零度溫柔 &lt;nickdraw@qq.com&gt;</author>
<category><![CDATA[CSS 2.0]]></category>
<pubDate>Wed, 30 Jun 2010 01:13:15 +0000</pubDate> 
<guid>http://www.206c.net/blog/post/84/</guid> 
<description>
<![CDATA[ 
	写页面设计的朋友们，经常为浏览器CSS的兼容性头痛不已，经过本人的仔细研究发现一种好的写法，现在与大家分享.<br/><br/><textarea name="code" class="CSS" rows="15" cols="100">

#body &#123;
border:2px solid #00f;&nbsp;&nbsp;&nbsp;&nbsp; /*ff的属性*/
border:2px solid #090&#92;9;&nbsp;&nbsp; /* IE6/7/8的属性 */
border:2px solid #F90&#92;0;&nbsp;&nbsp;&nbsp;&nbsp; /* IE8支持 */
_border:2px solid #f00;&nbsp;&nbsp;&nbsp;&nbsp; /*IE6的属性*/
&#125;

</textarea><br/><br/><textarea name="code" class="html" rows="15" cols="100">

<div id=”body”>
<ul>
&nbsp;&nbsp;&nbsp;&nbsp;<li>FF下蓝边</li>
&nbsp;&nbsp;&nbsp;&nbsp;<li>IE6下红边</li>
&nbsp;&nbsp;&nbsp;&nbsp;<li>IE7下绿边</li>
&nbsp;&nbsp;&nbsp;&nbsp;<li>IE8下黄边</li>
</ul>
</div>

</textarea><br/><br/>注:css顺序不能写错，因为Firefox不认识&#92;9,&#92;0,_写法,所以为蓝边;&#92;9是IE6，7，8的属性,下面代码并没有重写IE7的代码，所以IE7下绿边;同理,&#92;0为ie8属性，相当于重写了颜色，所以IE8下为黄边,_是ie6的属性,重写颜色为红边.<br/><br/>原文：http://www.52blogger.com/archives/535
]]>
</description>
</item><item>
<link>http://www.206c.net/blog/post/83/</link>
<title><![CDATA[使用css2.1实现多重背景、多重边框效果]]></title> 
<author>零度溫柔 &lt;nickdraw@qq.com&gt;</author>
<category><![CDATA[CSS 2.0]]></category>
<pubDate>Thu, 24 Jun 2010 01:30:33 +0000</pubDate> 
<guid>http://www.206c.net/blog/post/83/</guid> 
<description>
<![CDATA[ 
	在单个HTML元素上利用CSS2.1实现拥有3张背景图片和2张内容图效果，或者多重边框的效果。这种渐进增强的方式适用于所有支持CSS2.1伪元素及其定位属性的所有浏览器。不需要CSS3的支持。<br/><br/>演示：<a href="http://nicolasgallagher.com/demo/multiple-backgrounds-and-borders-with-css2/backgrounds.html" target="_blank">使用CSS2.1的多背景</a> <br/><br/>演示：<a href="http://nicolasgallagher.com/demo/multiple-backgrounds-and-borders-with-css2/borders.html" target="_blank">使用CSS2.1的多边框</a> <br/><br/>支持的浏览器：Firefox 3.5+, Safari 4+, chrome4+, opera10+, IE8+<br/><br/>是如何实现的呢？<br/><br/>从本质上讲，我们所创建的伪对象（:before和:after）跟我们在对待HTML元素嵌套关系是相同的。但他们相对于嵌套使用的HTML元素而言具有其独特的优势——不具有语义化。<br/><br/>当使用多背景或者多重边框的时候，我们需要将伪元素层的内容利用绝对定位固定在HTML元素内容的后面。<br/><br/><a href="http://www.blueidea.com/articleimg/2010/06/7725/01.jpg" class="highslide" onclick="return hs.expand(this)"><img src="http://www.blueidea.com/articleimg/2010/06/7725/01.jpg" class="insertimage" alt="Highslide JS" title="点击图片放大" border="0" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/>并非真实的内容被伪元素所包含进行定位。这意味着他们能在“父”元素范围内随意拉伸的同时而不会影响其内容。这可以任意组合绝对定位的top、right、bottom、left、width和height的值，主要关键是他们的组合性能是灵活的。<br/><br/>可以达到什么效果？<br/><br/>仅需要依赖于一个HTML元素和相关的图片就可以创建类似于多背景颜色、多背景图、背景图片剪辑、图片翻转、使用图片边框的可扩展的盒模型、浮动的虚假列（小志注：后面会提到的三列等高效果）、在盒模型外的图片、显示在外面的多边框，以及其他流行的效果等。可能需要2张额外的内容图片在生成的内容中。<br/><br/>在使用CSS2.1的多背景和使用CSS2.1的多边框演示页面中将会展示如何使用CSS2.1伪对象的技术实现这些流行的效果。<br/><br/>大部分的结构都包含子元素。因此，往往很多时候，你将有可能通过父元素的第一个子元素（设置是最后一个子元素）的伪元素来展示更多的效果。此外，还可以通过:hover对样式产生一些复杂的交互效果的变化。<br/><br/>示例代码：多背景图片<br/><br/>使用这种技术我们可以重现类似于Silverback网站中只使用一个HTML元素的多背景图片效果。<br/><br/><a href="http://www.blueidea.com/articleimg/2010/06/7725/02.jpg" class="highslide" onclick="return hs.expand(this)"><img src="http://www.blueidea.com/articleimg/2010/06/7725/02.jpg" class="insertimage" alt="Highslide JS" title="点击图片放大" border="0" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/>该元素拥有自己的背景图片和需要填充的空间。将该元素相对定位后作为其伪元素的绝对定位参考点。使用正值的z-index将有助于伪元素选择合适的z-index值（小志注：对于这句的翻译思考了很久一直没能选择合适的词来表达，主要的意思根据下面的代码我们可以看到是将伪元素的z-index值设置比元素自身的小即可，最好是用负值）。<br/><br/><textarea name="code" class="CSS" rows="15" cols="100">
 #silverback &#123;
 position:relative;
 z-index:1;
 min-width:200px;
 min-height:200px;
 padding:120px 200px 50px;
 background:#d3ff99 url(vines-back.png) -10% 0 repeat-x;
&#125;
</textarea><br/><br/>两个伪元素将会通过绝对定位的方式固定在该元素的两边。设置z-index值为-1将伪元素移到内容层的后面。这样伪元素将会位于元素的背景和边框上面，但是该元素的内容依然可以选择。<br/><br/><textarea name="code" class="CSS" rows="15" cols="100">
#silverback:before,
#silverback:after &#123;
 position:absolute;
 z-index:-1;
 top:0;
 left:0;
 right:0;
 bottom:0;
 padding-top:100px;
&#125;
</textarea><br/><br/>每个伪元素都拥有一个可重复的背景图片属性。这是实现类型多重背景效果所需要的。<br/><br/>伪元素的content属性允许添加图片内容。这样我们就可以添加两张图片在一个伪元素中。可以通过改变伪元素的其他属性改变图片的位置，例如text-align和padding。<br/><br/><textarea name="code" class="CSS" rows="15" cols="100">
#silverback:before &#123;
 content:url(gorilla-1.png);
 padding-left:3%;
 text-align:left;
 background:transparent url(vines-mid.png) 300% 0 repeat-x;
&#125;
 
#silverback:after &#123;
 content:url(gorilla-2.png);
 padding-right:3%;
 text-align:right;
 background:transparent url(vines-front.png) 70% 0 repeat-x;
&#125; 
</textarea><br/><br/>使用CSS2.1的多重背景图效果成品。<br/><br/>示例代码：浮动的虚假列<br/><br/>另外一个应用是创建一个不需要图片或者额外嵌套容器的等高列（小志注：这里展示的是三列等高的效果）。<br/><br/><a href="http://www.blueidea.com/articleimg/2010/06/7725/03.jpg" class="highslide" onclick="return hs.expand(this)"><img src="http://www.blueidea.com/articleimg/2010/06/7725/03.jpg" class="insertimage" alt="Highslide JS" title="点击图片放大" border="0" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/>这个HTML结构非常简单。我曾经依赖于CSS2.1选择器使用特定类名在每一个子元素的div标签上，但IE6不支持。假如不需要IE6的支持的话，并不需要指定类名。<br/><br/><textarea name="code" class="html" rows="15" cols="100">
<div id="faux">
 <div class="main">[content]</div>
 <div class="supp1">[content]</div>
 <div class="supp2">[content]</div>
</div>
</textarea><br/><br/>对这个拥有百分比的容器再次设置相对定位以及正值的z-index。应用overflow:hidden;主要是为了包含其子元素浮动后的容器（小志注：也就是清除浮动的一种方式），以及隐藏溢出的伪元素。背景颜色将作为其中一列的背景色。<br/><br/><textarea name="code" class="html" rows="15" cols="100">
 #faux &#123;
 position:relative;
 z-index:1;
 width:80%;
 margin:0 auto;
 overflow:hidden;
 background:#ffaf00;
&#125;
</textarea><br/><br/>通过定义子元素的div标签为相对定位之后，还可以控制单独列的位置。<br/><br/><textarea name="code" class="html" rows="15" cols="100">
#faux div &#123;
 position:relative;
 float:left;
 width:30%;
&#125;
 
#faux .main &#123;left:35%&#125;
#faux .supp1 &#123;left:-28.5%&#125;
#faux .supp2 &#123;left:8.5%&#125;
</textarea><br/><br/>另外百分百高度的两列被建立于定位的位置和定位属性的伪元素，同时设置了背景色。这些背景可以用（重复的）图片代替，如果有需要的话。<br/><br/><textarea name="code" class="CSS" rows="15" cols="100">
#faux:before,
#faux:after &#123;
 content:"";
 position:absolute;
 z-index:-1;
 top:0;
 left:33.333%;
 width:100%;
 height:100%;
 background:#f9b6ff;
&#125;
 
#faux:after &#123;
 left:66.667%;
 background:#79daff;
&#125;
</textarea><br/><br/>使用CSS2.1的多重背景效果成品。<br/><br/>示例代码：多边框<br/><br/>多边框的处理方式有很多相类似之处。利用这些方式可以避免使用图片而产生简单的效果。<br/><br/><a href="http://www.blueidea.com/articleimg/2010/06/7725/04.jpg" class="highslide" onclick="return hs.expand(this)"><img src="http://www.blueidea.com/articleimg/2010/06/7725/04.jpg" class="insertimage" alt="Highslide JS" title="点击图片放大" border="0" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/>元素必须具有相对定位属性，并且在需要有填充产生足够的宽度给由伪元素创建的额外的边框。<br/><br/><textarea name="code" class="CSS" rows="15" cols="100">
#borders &#123;
 position:relative;
 z-index:1;
 padding:30px;
 border:5px solid #f00;
 background:#ff9600;
&#125; 
</textarea><br/><br/>将伪元素绝对定位在盒子中，并明确与元素盒模型边距之间的距离，设置z-index值为负值后移动到内容层的后面，同时设置你所需要的边框色和背景色。<br/><br/><textarea name="code" class="CSS" rows="15" cols="100">
#borders:before &#123;
 content:"";
 position:absolute;
 z-index:-1;
 top:5px;
 left:5px;
 right:5px;
 bottom:5px;
 border:5px solid #ffea00;
 background:#4aa929;
&#125; 

 #borders:after &#123;
 content:"";
 position:absolute;
 z-index:-1;
 top:15px;
 left:15px;
 right:15px;
 bottom:15px;
 border:5px solid #00b4ff;
 background:#fff;
&#125;
</textarea><br/><br/>就是这么简单。一个使用CSS2.1的多边框效果成品就有了。<br/><br/>渐进增强和传统浏览器<br/><br/>IE6和IE7不支持CSS2.1伪元素，将会忽略所有:before和:after声明。它们没有任何增强，但保留着基本的使用习惯。<br/><br/>关于Firefox 3.0的一个警告<br/><br/>Firefox 3.0虽然支持CSS2.1伪元素但不支持其定位。虽然没有支持这部分的效果，但另一些完全不受影响，并且不知道后续的Firefox 3.0版本将会什么时候优化成完美支持这种技术。有时，可以通过定义display:block样式属性可以改进伪元素的外观样式。<br/><br/>使用目前的方式，要求其定位伪元素，建议考虑Firefox 3.0支持的重要性和您的用户目前使用的浏览器比例。<br/><br/>翻译之外的东西，一点点个人看法<br/><br/>这篇文章我不知道是什么时候有的，不过原文后面是对CSS3的属性一些内容，我抛弃了，因为当时看到这篇文章主要是冲着使用CSS2.1的伪对象方式实现效果而去的。当我看到文章中提到用伪对象实现三列等高的时候，我表示十分惊讶，大概分析了一下这样的等高处理方式也存在着一点点小问题，比如背景图片定位（不支持伪对象的浏览器不考虑在内了）。顺带说一下，曾经考虑过在伪对象的content属性中增加图片，但一直以为是不可能实现的，就没尝试了，现在看到了，我也明白了，凡事只有尝试过后才能去确认！<br/><br/>原文：http://blog.linxz.cn/multiple_backgrounds_and_borders_with_css2/<br/><br/><br/>
]]>
</description>
</item><item>
<link>http://www.206c.net/blog/post/82/</link>
<title><![CDATA[简易的全屏透明遮罩--lightBox]]></title> 
<author>零度溫柔 &lt;nickdraw@qq.com&gt;</author>
<category><![CDATA[Javascript]]></category>
<pubDate>Fri, 11 Jun 2010 02:23:02 +0000</pubDate> 
<guid>http://www.206c.net/blog/post/82/</guid> 
<description>
<![CDATA[ 
	前不久有个正要毕业的网友给我发邮件，他毕业设计需要实现锁屏的效果，但是他没有能看懂我之前发布的对话框源码，他问能不能把锁屏相关代码说明下，我当时说过两天就发。由于最近比较忙，我现在才想起来，但愿现在此文还来得及。<br/><br/>步入正题：<br/><br/>现在全屏的半透明遮罩层在web2.0网站应用非常广泛了，绝大多数遮罩是通过计算页面大小，然后覆盖一个与页面同等大小的层实现，如腾讯 qzone, wordpress后台。这种方式本来无可非议，但是在页面很长的时候在IE8下会失效（国外资料的解释是与机器显卡相关），有些完美情节的同学遇到这个问题后就抓破了头，无奈之下甚至想让IE8强制使用IE7的方式解析他的作品。其实我们有一个更好的方法，咱们用CSS去解决它！<br/><br/>还记得“position:fixed”吗？它是css2的一个新增的属性，他可以让一个元素静止在页面上，拖动滚动条也不会动，如Qzone顶部固定的导航栏就是这样实现的。同样我们也可以用一个100%高宽的层覆盖浏览器视口，这样就可以实现全屏遮罩了，不用再计算页面的大小，调整浏览器大小的时候也不要去动态修改尺寸了。<br/><br/><textarea name="code" class="html" rows="15" cols="100"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>lock page</title>
<meta name="author" content="www.planeart.cn" />
<style>
#pageOverlay &#123; position:fixed; top:0; left:0; z-index:1987; width:100%; height:100%; background:#000; filter:alpha(opacity=70); opacity:0.7; &#125;
</style>
</head>
<body&nbsp;&nbsp; >
<ol id="test" onclick="document.getElementById('pageOverlay').style.visibility = 'visible'">
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
</ol>
<div id="pageOverlay" onclick="this.style.visibility = 'hidden'"></div>
</body>
</html></textarea><br/><br/>可是有一个头疼的问题，IE6不支持“position:fixed”，咱们只能通过js动态的修改它的TOP值以模拟静止定位，拖动滚动条的时候遮罩成肯定会抖动，因为每改变一次IE会重新渲染一次。但是微软却给我们提供了一个非常有趣的特性，如果给html或者body标签设置一个静止定位的背景图片，层在拖动滚动条的时候就不会抖动了，几乎完美的模拟了“position:fixed”。我在实际项目中发现这个特性他还能触发其他的特异功能，以后再说明。<br/><br/>为了省事，咱们针对IE6用万恶expression在CSS中写点脚本，拖动滚动条的时候重新定位我们的遮罩层。传说中 expression是非常耗性能的，可是咱们的expression几乎没有损耗，有兴趣的同学可以深入研究下expression。<br/><br/><textarea name="code" class="html" rows="15" cols="100"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>lock page</title>
<meta name="author" content="www.planeart.cn" />
<style>
#pageOverlay &#123; position:fixed; top:0; left:0; z-index:1987; width:100%; height:100%; background:#000; filter:alpha(opacity=70); opacity:0.7; &#125;
/*IE6 fixed*/
* html &#123; background:url(*) fixed; &#125;
* html body &#123; margin:0; height:100%; &#125;
* html #pageOverlay &#123; position: absolute; left: expression(documentElement.scrollLeft + documentElement.clientWidth - this.offsetWidth); top: expression(documentElement.scrollTop + documentElement.clientHeight - this.offsetHeight); &#125;
</style>
</head>
<body&nbsp;&nbsp; >
<ol id="test" onclick="document.getElementById('pageOverlay').style.visibility = 'visible'">
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
</ol>
<div id="pageOverlay" onclick="this.style.visibility = 'hidden'"></div>
</body>
</html></textarea><br/><br/>好了，兼容IE6这个大头娃娃后，咱们的锁屏遮罩已经通杀主流浏览器了，但是呢用js写效果的同学们总是非常的蛋疼，总想折腾点什么来，咱们就再添加一点脚本，让锁屏的时候后可以中断用户操作，把滚动条、滚轮、tab键、全选、刷新、右键统统禁止掉，模拟真正的‘锁屏’：<br/><br/><textarea name="code" class="html" rows="15" cols="100"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>lock page</title>
<meta name="author" content="www.planeart.cn" />
<style>
#pageOverlay &#123; visibility:hidden; position:fixed; top:0; left:0; z-index:1987; width:100%; height:100%; background:#000; filter:alpha(opacity=70); opacity:0.7; &#125;
/*IE6 fixed*/
* html &#123; background:url(*) fixed; &#125;
* html body &#123; margin:0; height:100%; &#125;
* html #pageOverlay &#123; position: absolute; left: expression(documentElement.scrollLeft + documentElement.clientWidth - this.offsetWidth); top: expression(documentElement.scrollTop + documentElement.clientHeight - this.offsetHeight); &#125;
</style>
<script>
(function()&#123;
 // 获取对象
 var $ = function (id)&#123;
&nbsp;&nbsp;return document.getElementById(id);
 &#125;;
 // 遍历
 var each = function(a, b) &#123;
&nbsp;&nbsp;for (var i = 0, len = a.length; i < len; i++) b(a[i], i);
 &#125;;
 // 事件绑定
 var bind = function (obj, type, fn) &#123;
&nbsp;&nbsp;if (obj.attachEvent) &#123;
&nbsp;&nbsp; obj['e' + type + fn] = fn;
&nbsp;&nbsp; obj[type + fn] = function()&#123;obj['e' + type + fn](window.event);&#125;
&nbsp;&nbsp; obj.attachEvent('on' + type, obj[type + fn]);
&nbsp;&nbsp;&#125; else &#123;
&nbsp;&nbsp; obj.addEventListener(type, fn, false);
&nbsp;&nbsp;&#125;;
 &#125;;
 
 // 移除事件
 var unbind = function (obj, type, fn) &#123;
&nbsp;&nbsp;if (obj.detachEvent) &#123;
&nbsp;&nbsp; try &#123;
&nbsp;&nbsp;&nbsp;&nbsp;obj.detachEvent('on' + type, obj[type + fn]);
&nbsp;&nbsp;&nbsp;&nbsp;obj[type + fn] = null;
&nbsp;&nbsp; &#125; catch(_) &#123;&#125;;
&nbsp;&nbsp;&#125; else &#123;
&nbsp;&nbsp; obj.removeEventListener(type, fn, false);
&nbsp;&nbsp;&#125;;
 &#125;;
 
 // 阻止浏览器默认行为
 var stopDefault = function(e)&#123;
&nbsp;&nbsp;e.preventDefault ? e.preventDefault() : e.returnValue = false;
 &#125;;
 // 获取页面滚动条位置
 var getPage = function()&#123;
&nbsp;&nbsp;var dd = document.documentElement,
&nbsp;&nbsp; db = document.body;
&nbsp;&nbsp;return &#123;
&nbsp;&nbsp; left: Math.max(dd.scrollLeft, db.scrollLeft),
&nbsp;&nbsp; top: Math.max(dd.scrollTop, db.scrollTop)
&nbsp;&nbsp;&#125;;
 &#125;;
 
 // 锁屏
 var lock = &#123;
&nbsp;&nbsp;show: function()&#123;
&nbsp;&nbsp; $('pageOverlay').style.visibility = 'visible';
&nbsp;&nbsp; var p = getPage(),
&nbsp;&nbsp;&nbsp;&nbsp;left = p.left,
&nbsp;&nbsp;&nbsp;&nbsp;top = p.top;
&nbsp;&nbsp; 
&nbsp;&nbsp; // 页面鼠标操作限制
&nbsp;&nbsp; this.mouse = function(evt)&#123;
&nbsp;&nbsp;&nbsp;&nbsp;var e = evt &#124;&#124; window.event;
&nbsp;&nbsp;&nbsp;&nbsp;stopDefault(e);
&nbsp;&nbsp;&nbsp;&nbsp;scroll(left, top);
&nbsp;&nbsp; &#125;;
&nbsp;&nbsp; each(['DOMMouseScroll', 'mousewheel', 'scroll', 'contextmenu'], function(o, i) &#123;
&nbsp;&nbsp;&nbsp;&nbsp; bind(document, o, lock.mouse);
&nbsp;&nbsp; &#125;);
&nbsp;&nbsp; // 屏蔽特定按键: F5, Ctrl + R, Ctrl + A, Tab, Up, Down
&nbsp;&nbsp; this.key = function(evt)&#123;
&nbsp;&nbsp;&nbsp;&nbsp;var e = evt &#124;&#124; window.event,
&nbsp;&nbsp;&nbsp;&nbsp; key = e.keyCode;
&nbsp;&nbsp;&nbsp;&nbsp;if((key == 116) &#124;&#124; (e.ctrlKey && key == 82) &#124;&#124; (e.ctrlKey && key == 65) &#124;&#124; (key == 9) &#124;&#124; (key == 38) &#124;&#124; (key == 40)) &#123;
&nbsp;&nbsp;&nbsp;&nbsp; try&#123;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;e.keyCode = 0;
&nbsp;&nbsp;&nbsp;&nbsp; &#125;catch(_)&#123;&#125;;
&nbsp;&nbsp;&nbsp;&nbsp; stopDefault(e);
&nbsp;&nbsp;&nbsp;&nbsp;&#125;;
&nbsp;&nbsp; &#125;;
&nbsp;&nbsp; bind(document, 'keydown', lock.key);
&nbsp;&nbsp;&#125;,
&nbsp;&nbsp;close: function()&#123;
&nbsp;&nbsp; $('pageOverlay').style.visibility = 'hidden';
&nbsp;&nbsp; each(['DOMMouseScroll', 'mousewheel', 'scroll', 'contextmenu'], function(o, i) &#123;
&nbsp;&nbsp;&nbsp;&nbsp;unbind(document, o, lock.mouse);
&nbsp;&nbsp; &#125;);
&nbsp;&nbsp; unbind(document, 'keydown', lock.key);
&nbsp;&nbsp;&#125;
 &#125;;
 bind(window, 'load', function()&#123;
&nbsp;&nbsp;$('btn_lock').onclick = function()&#123;
&nbsp;&nbsp; lock.show();
&nbsp;&nbsp;&#125;;
&nbsp;&nbsp;$('pageOverlay').onclick = function()&#123;
&nbsp;&nbsp; lock.close();
&nbsp;&nbsp;&#125;;
 &#125;);
&#125;)();
</script>
</head>
<body&nbsp;&nbsp; >
<button id="btn_lock" style="position: absolute; left:50%; top:40%; ">开启锁屏</button>
<ol id="test">
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
<li>囧</li>
</ol>
<div id="pageOverlay"></div>
</body>
</html></textarea><br/><br/>原文：http://www.planeart.cn/?p=792
]]>
</description>
</item><item>
<link>http://www.206c.net/blog/post/81/</link>
<title><![CDATA[PhotoShop web2.0经典颜色按钮样式整理--提供下载]]></title> 
<author>零度溫柔 &lt;nickdraw@qq.com&gt;</author>
<category><![CDATA[图形图像]]></category>
<pubDate>Tue, 08 Jun 2010 06:35:50 +0000</pubDate> 
<guid>http://www.206c.net/blog/post/81/</guid> 
<description>
<![CDATA[ 
	下图为安装后photoshop样式界面<br/>在实际应用中点选样式即可.<br/><br/><a href="http://www.206c.net/blog/attachment.php?fid=172" class="highslide" onclick="return hs.expand(this)"><img src="http://www.206c.net/blog/attachment.php?fid=172" class="insertimage" alt="Highslide JS" title="点击图片放大" border="0" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/>下图为应用后的按钮实例:<br/><br/><a href="http://www.206c.net/blog/attachment.php?fid=173" class="highslide" onclick="return hs.expand(this)"><img src="http://www.206c.net/blog/attachment.php?fid=173" class="insertimage" alt="Highslide JS" title="点击图片放大" border="0" class="insertimage" alt="点击在新窗口中浏览此图片" title="点击在新窗口中浏览此图片" border="0"/></a><br/><br/>安装说明:<br/>下载附件后请按照photoshop安装路径寻找&#92;Presets&#92;Styles文件夹.将插件拷贝进去即可.启动photoshop打开样式面板就会加载上.<br/><br/>路径例如:D:&#92;Program Files&#92;adobe&#92;Adobe Photoshop CS5&#92;Presets&#92;Styles 此路径为我安装的路径.<br/><br/><a href="attachment.php?fid=174">点击这里下载文件</a>
]]>
</description>
</item>
</channel>
</rss>