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

<channel>
	<title>情缘工作室 &#187; 技术交流</title>
	<atom:link href="http://www.qyorg.com/category/jsjl/feed" rel="self" type="application/rss+xml" />
	<link>http://www.qyorg.com</link>
	<description>情牵一线，缘定三生！...</description>
	<lastBuildDate>Tue, 25 May 2010 03:27:11 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>防盗链技巧&#8212;.htaccess设置</title>
		<link>http://www.qyorg.com/jsjl/1460.html</link>
		<comments>http://www.qyorg.com/jsjl/1460.html#comments</comments>
		<pubDate>Tue, 12 Jan 2010 03:51:01 +0000</pubDate>
		<dc:creator>橘子xs</dc:creator>
				<category><![CDATA[技术交流]]></category>
		<category><![CDATA[bloglines]]></category>
		<category><![CDATA[gif jpeg]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[request uri]]></category>

		<guid isPermaLink="false">http://www.qyorg.com/?p=1460</guid>
		<description><![CDATA[<!-- Easy AdSense V2.91 -->
<!-- Post[count: 3] -->
<div class="ezAdsense adsense adsense-leadin" style="text-align:center;margin:12px;"><script type="text/javascript"><!--
google_ad_client = "pub-8428934360475600";
/* 468x15, 创建于 09-10-22 */
google_ad_slot = "8051826586";
google_ad_width = 468;
google_ad_height = 15;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>
<!-- Easy AdSense V2.91 -->

.htaccess 设置：虽然理论上而言，在Apache中，可以针对每个目录分别设置 .htaccess ，通过权限的继承与覆盖可以实现相当复杂的功能。不过，过多的 .htaccess 往往会增加管理的难度，有时候百密难免有一疏，修改 .htaccess 稍有遗漏便可能造成网站出现问题。

默认情况下禁止其他网站盗链：对图片文件而言，当其他网站使用图片文件盗链时自动重定向至设置的防盗链告示图片，声明版权及宣传您的网站。当然，从降低对服务器带宽占用的角度考虑，这个图片文件不能过大，您也可以简单地拒绝其访问，让其网页上图片位置以红“x”号代替。

<span class="readmore"><a href="http://www.qyorg.com/jsjl/1460.html" title="防盗链技巧&#8212;.htaccess设置">阅读全文——共2019字</a></span>]]></description>
			<content:encoded><![CDATA[<p>.htaccess 设置：虽然理论上而言，在Apache中，可以针对每个目录分别设置 .htaccess ，通过权限的继承与覆盖可以实现相当复杂的功能。不过，过多的 .htaccess 往往会增加管理的难度，有时候百密难免有一疏，修改 .htaccess 稍有遗漏便可能造成网站出现问题。</p>
<p>默认情况下禁止其他网站盗链：对图片文件而言，当其他网站使用图片文件盗链时自动重定向至设置的防盗链告示图片，声明版权及宣传您的网站。当然，从降低对服务器带宽占用的角度考虑，这个图片文件不能过大，您也可以简单地拒绝其访问，让其网页上图片位置以红“x”号代替。<span id="more-1460"></span></p>
<p>允许特定访问来源：单纯针对图片文件来说，事实上也不可能禁止所有除您自身网站之外的其他访问，比如说Google，如果您希望通过Google图片搜索获得一定访问的话，必须让其能够正确读取真正的图片文件，再如应能够让RSS订阅用户看到feed中的图片，这就要求允许来自bloglines等的访问。</p>
<p>允许特定目录下的文件被外部网站使用：完全禁止外部网站有时会带来不便，很多时候，我们自己也可能需要在外部网站使用部分文件。当然，放入这些目录的文件要有一定限制，不然，便失去设置防盗链的意义了。</p>
<p>设置 .htaccess 禁止图片盗链<br />
下面即为本站教学禁止图片盗链的 .htaccess 设置部分：</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">RewriteEngine on<br />
RewriteCond %{REQUEST_URI} ^/(qyorg1|qyorg2)<br />
RewriteRule ^.*$ - [L]</div></td></tr></tbody></table></div>
<p>首先，设置允许可“盗链”即外部网站可以使用的文件所处目录，上面我们设置了两个目录，分别为qyorg1与qyorg2，当然，如果您只有一个目录的话，可以将其改为：</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">RewriteCond %{REQUEST_URI} ^/qyorg1</div></td></tr></tbody></table></div>
<p>接下来判断是否为图片文件：</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">RewriteCond %{REQUEST_FILENAME} .(gif|jpeg|png)$ [NC]</div></td></tr></tbody></table></div>
<p>您也可以根据自己的需要设置更多的文件类型。</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">RewriteCond %{HTTP_REFERER} !^$</div></td></tr></tbody></table></div>
<p>上面这一行意在允许空“HTTP_REFERER”的访问，即允许用户在浏览器地址栏中直接输入图片地址时图片文件的显示。一般而言，这是可选的，不过，建议这么设置，如果强迫必须具有“HTTP_REFERER”才能访问，可能会带来某些问题，比如说在用户通过代理服务器访问时。</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">RewriteCond %{HTTP_REFERER} !qyorg.com [NC]<br />
RewriteCond %{HTTP_REFERER} !google.com [NC]<br />
RewriteCond %{HTTP_REFERER} !baidu.com [NC]<br />
RewriteCond %{HTTP_REFERER} !bloglines.com [NC]<br />
RewriteCond %{HTTP_REFERER} !feedburner.com [NC]</div></td></tr></tbody></table></div>
<p>设置允许访问的HTTP来源，包括博客学堂自身、Google、Baidu、Bloglines、Feedburner等。</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">RewriteRule (.*) /qyorg1/qyorg_name.gif [R,NC,L]</div></td></tr></tbody></table></div>
<p>将不满足上述条件的访问重定向至qyorg_name.gif。您可能已经注意到，qyorg_name.gif位于允许“盗链”的目录qyorg1下，这一点很重要，不然，您的警告信息图片将无法在对方网站上显示。</p>
<p>如此，即实现了我们预先设定的防止图片盗链目标。</p>
<p>其他类型文件的防盗链设定<br />
如果您的网站上存在其他类似体积较大较耗费带宽的文件如flash、mp3被其他网站盗链，可以同样采取上述策略，比如说，对Flash文件，可用类似如下的设置：</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">RewriteCond %{REQUEST_URI} ^/qyorg1<br />
RewriteRule ^.*$ - [L]RewriteBase /<br />
RewriteCond %{REQUEST_FILENAME} .swf$ [NC]<br />
RewriteCond %{HTTP_REFERER} !^$<br />
RewriteCond %{HTTP_REFERER} !qyorg.com [NC]</div></td></tr></tbody></table></div>
<p>(……其他允许访问来源)</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">RewriteRule (.*) /qyorg1/qyorg_name.swf [R,NC,L]</div></td></tr></tbody></table></div>
<p>当然，需要事先创建一个声明版权信息的flash文件“qyorg_name.swf”。其他诸如防止mp3文件、压缩文件(zip或rar)盗链的设置与此类似，不再赘述。</p>
<p>使用方法:将上述代码保存为.htaccess 上传到博客根目录。 .htaccess 可能无法直接上传和在WIN系统建立 所以你可以先建立一个普通的TXT文本文件 上传到 FTP空间之后利用FTP 重命名为.htaccess 即可。</p>
<p>*.htaccess 为 linux系统 Apache环境下特有的 因此 一些所谓的全能空间 WIN系统是无法使用本篇介绍的防盗链内容。很遗憾。不过您可以寻找其他基于IIS下的防盗链方式。</p>
<img src="http://www.qyorg.com/?ak_action=api_record_view&id=1460&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.qyorg.com/jsjl/1460.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>IE6解决下Png透明的最佳方法</title>
		<link>http://www.qyorg.com/jsjl/1409.html</link>
		<comments>http://www.qyorg.com/jsjl/1409.html#comments</comments>
		<pubDate>Wed, 30 Dec 2009 11:00:21 +0000</pubDate>
		<dc:creator>橘子xs</dc:creator>
				<category><![CDATA[技术交流]]></category>
		<category><![CDATA[background image]]></category>
		<category><![CDATA[endif]]></category>
		<category><![CDATA[gif images]]></category>
		<category><![CDATA[gt 2]]></category>
		<category><![CDATA[ie 7]]></category>
		<category><![CDATA[IE6]]></category>
		<category><![CDATA[JS]]></category>
		<category><![CDATA[lt]]></category>
		<category><![CDATA[PNG]]></category>
		<category><![CDATA[script type]]></category>
		<category><![CDATA[text javascript]]></category>
		<category><![CDATA[下载]]></category>

		<guid isPermaLink="false">http://www.qyorg.com/?p=1409</guid>
		<description><![CDATA[因为它的确是太出众了。

1.非常小的javascript文件：1kb！

2.解决因为IE的滤镜属性所带来的影响。

<span class="readmore"><a href="http://www.qyorg.com/jsjl/1409.html" title="IE6解决下Png透明的最佳方法">阅读全文——共612字</a></span>]]></description>
			<content:encoded><![CDATA[<p style="text-indent: 2em;">因为它的确是太出众了。</p>
<p style="text-indent: 2em;">1.非常小的javascript文件：1kb！</p>
<p style="text-indent: 2em;">2.解决因为IE的滤镜属性所带来的影响。</p>
<p style="text-indent: 2em;">3.无论是img元素或background-image属性，都能有效果。</p>
<p style="text-indent: 2em;">4.在加载页面之前就能自动运行。或者就一丁点的元素。</p>
<p style="text-indent: 2em;">5.允许自动高宽。</p>
<p style="text-indent: 2em;">6.使用起来超级简单。</p>
<p style="text-indent: 2em;"> <span id="more-1409"></span></p>
<p> </p>
<p style="TEXT-INDENT: 2em"><img class="aligncenter size-medium wp-image-1410" title="1136100" src="http://www.qyorg.com/wp-content/uploads/1136100-300x106.png" alt="1136100" width="300" height="106" /></p>
<p style="TEXT-INDENT: 2em">如何使用：</p>
<p style="TEXT-INDENT: 2em">1）。下载<a title="unitpngfix.zip" href="http://labs.unitinteractive.com/downloads/unitpngfix.zip" target="_blank">unitpngfix.zip</a>然后，添加下面的代码到你页面的头部。（一定要确保路径的正确）</p>
<p>&lt;!&#8211;[if lt IE 7]&gt;<br />
        &lt;script type=&#8221;text/javascript&#8221; src=&#8221;unitpngfix.js&#8221;&gt;&lt;/script&gt;<br />
&lt;![endif]&#8211;&gt;</p>
<table border="0" cellspacing="0" cellpadding="6" width="95%" align="center">
<tbody></tbody>
</table>
<p style="TEXT-INDENT: 2em">2）。添加clear.gif到你的images 文件夹中。在js文件中，修改”var clear=”images/clear.gif” 路径，为你存放clear.gif的文件路径。</p>
<p style="TEXT-INDENT: 2em">3）。 你的整个项目的png图片都实现了透明效果。的确非常简单吧？就2个步骤，就实现了整个站点所有png的透明效果。</p>
<p style="TEXT-INDENT: 2em">一些注意事项：</p>
<p style="TEXT-INDENT: 2em">Unit PNG Fix能够让 background-repeat在ie6下工作，不过这种工作方式不是像正常的repeat图片重复的效果，而是采用了拉伸的效果。但是，仍然是效果 的，所以这也是非常不错的。因为没有任何一个解决方案能够实现ie6下透明滤镜重复图片这个功能.</p>
<p style="TEXT-INDENT: 2em"><a href="http://labs.unitinteractive.com/unitpngfix.php">http://labs.unitinteractive.com/unitpngfix.php</a></p>
<img src="http://www.qyorg.com/?ak_action=api_record_view&id=1409&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.qyorg.com/jsjl/1409.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[分享]IxEdit傻瓜式JavaScript开发工具(附下载、汉化版、视频教程)</title>
		<link>http://www.qyorg.com/jsjl/1382.html</link>
		<comments>http://www.qyorg.com/jsjl/1382.html#comments</comments>
		<pubDate>Sat, 26 Dec 2009 03:43:44 +0000</pubDate>
		<dc:creator>橘子xs</dc:creator>
				<category><![CDATA[技术交流]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[gears]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[google gears]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[safari]]></category>
		<category><![CDATA[ui]]></category>
		<category><![CDATA[下载]]></category>
		<category><![CDATA[技术]]></category>
		<category><![CDATA[推荐]]></category>
		<category><![CDATA[教程]]></category>

		<guid isPermaLink="false">http://www.qyorg.com/?p=1382</guid>
		<description><![CDATA[IxEdit！神器啊~最近在网上发现了这个，一种激动之情简直无以表达啊，特意转载过来！]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="size-medium wp-image-1383  aligncenter" title="IxEdit_logo" src="http://www.qyorg.com/wp-content/uploads/IxEdit_logo-300x40.png" alt="IxEdit_logo" width="300" height="40" /></p>
<p>IxEdit！神器啊~最近在网上发现了这个，一种激动之情简直无以表达啊，特意转载过来！</p>
<p>原文章出处：<a href="http://www.cnblogs.com/JustinYoung/archive/2009/11/18/ixedit.html">http://www.cnblogs.com/JustinYoung/archive/2009/11/18/ixedit.html</a></p>
<h1 style="text-align: left;"><span style="color: #ff0000;">介绍IxEdit的视频</span></h1>
<p style="text-align: left;"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="600" height="400" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://downloads.cnblogs.com/justinyoung/articleIMG/ixedit/ixedit001.swf" /><embed type="application/x-shockwave-flash" width="600" height="400" src="http://downloads.cnblogs.com/justinyoung/articleIMG/ixedit/ixedit001.swf"> </embed></object><span id="more-1382"></span></p>
<h1 style="text-align: left;"><span style="color: #ff0000;">IxEdit的简介</span></h1>
</p>
<p style="text-align: left;">IxEdit是一个傻瓜式的JavaScript开发工具（其实就是JavaScript代码库）。无需掌握什么JavaScript基础，你就利用IxEdit方便的制作出一些常用的很牛叉的页面动态、交互效果。</p>
<h1 style="text-align: left;"><span style="color: #ff0000;">IxEdit实战</span></h1>
<h2 style="text-align: left;">第一步：先把需要的东西找齐</h2>
<p>如果要使用IxEdit这个JavaScript开发工具，首先要准备好一下东西，具体它们都有什么用，等下我来讲解。</p>
<li><a title="Google Gears" href="http://tools.google.com/gears/" target="_blank">Google Gears</a>如果没有则需要第二条的浏览器</li>
<li>如果没有Google Gears，你则需要<a title="Google chrome浏览器" href="http://www.google.com/chrome?hl=zh_CN" target="_blank">Google chrome浏览器</a>或者<a title="Safari浏览器" href="http://www.apple.com.cn/safari/download/" target="_blank">Apple的Safari浏览器</a></li>
<li><a title="jQuery" href="http://docs.jquery.com/Downloading_jQuery">jQuery 库 1.3 以上版本</a></li>
<li><a title="jQueryUI" href="http://jqueryui.com/download">jQuery UI 库 1.7 以上版本</a></li>
<li><a title="IxEdit" href="http://www.ixedit.com/download/">IxEdit js库文件</a>：可以暂不下载，文章最后会提供已汉化的英、中、日三语版本</li>
<p>好啦，让我们来说说这复制多样的先决条件吧！</p>
<p>IxEdit虽然说是JavaScript开发工具，其实也就是一个基于jQuery和jQuery UI 的JavaScript 脚本库而已。所以，需要jQuery 和 jQuery UI 。但是IxEdit是一个超级牛叉的JavaScript库，甚至需要用到本地数据库，所以这玩意需要听上去非常牛逼的Google Gears。</p>
<p>也许有朋友就问：是不是制作出来的网页也也需要Google Gears呢？其实没有关系啦，需要Google Gears就是开发环境而已，<strong>开发出来的网页就不再需要Google Gears了</strong>。这就如同，我们用VS2008开发出来的网站，但是用户浏览我们制作出来的网站时，并不需要安装VS2008一样。</p>
<h2>第二步：在本机部署开发环境吧</h2>
<p>“部署开发环境”看上去真是非常专业的字眼，其实就是下载一个压缩包，然后解压一下。</p>
<p>好吧，让我们来下载这个可以“部署开发环境”的压缩包吧</p>
<p style="text-align: center;"><a href="http://down.qiannao.com/space/file/juzixs/-4e0a-4f20-5206-4eab/2009/12/26/IxEdit_pack_cn.rar/.page" target="_self"><img class="size-full wp-image-1384  aligncenter" title="000download" src="http://www.qyorg.com/wp-content/uploads/000download.gif" alt="000download" width="140" height="30" /></a></p>
<h2>第三步：开始尝试使用IxEdit吧</h2>
<p>用EditPlus打开压缩包里面的<abbr title="HyperText Markup Language">HTML</abbr>例子文件（我个人习惯使用EditPlus，所以使用这个，大家可以随便用什么编辑器打开此文件）。然后会看到一些例子和黑乎乎的弹出层，这个弹出层就是整个IxEdit的灵魂了。通过它，只要简单的点击几下鼠标，就可以完成任务。</p>
<p><img class="size-full wp-image-1385 alignnone" title="IxEdit_002" src="http://www.qyorg.com/wp-content/uploads/IxEdit_002.gif" alt="IxEdit_002" width="529" height="327" /></p>
<p>IxEdit主界面就是上面这个黑乎乎的在页面里面的弹出层了。关于语言版本，我需要大致说一下：<strong>IxEdit会根据你浏览器的语言版本进行判断</strong>，使用何种语言，官方默认提供的是英语和日语。</p>
<p>如果您想帮助一起汉化此软件，请访问博客园<a title="IxEdit小组" href="http://space.cnblogs.com/group/ixedit/" target="_blank">IxEdit小组</a>。让我们逐步完善汉化版本而努力！</p>
<h2>第四步：开始尝试使用IxEdit制作简单js效果吧</h2>
<p>如何使用某某工具，这玩意用长篇大论+截图也不如直接用视频来的直接，所以，我决定采用视频的形式来讲解一下。如果看不了在线视频的朋友，可以到文章底部下载视频文件，下载到本地查看。</p>
<h2>第五步：讲解一下常用的对DOM操作的效果</h2>
<p>使用IxEdit可以方便的对DOM进行操作，包括：</p>
<ol style="LIST-STYLE-TYPE: decimal; MARGIN: 15px 2px 15px 25px">
<li style="LIST-STYLE-TYPE: decimal">添加Class、移除Class</li>
<li style="LIST-STYLE-TYPE: decimal">改变style</li>
<li style="LIST-STYLE-TYPE: decimal">改变值</li>
<li style="LIST-STYLE-TYPE: decimal">改变状体</li>
<li style="LIST-STYLE-TYPE: decimal">移除属性</li>
<li style="LIST-STYLE-TYPE: decimal">插入HTML元素</li>
<li style="LIST-STYLE-TYPE: decimal">清空元素</li>
<li style="LIST-STYLE-TYPE: decimal">移除元素</li>
</ol>
<p>视频中将会讲解一些常用的DOM操作的应用。</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="600" height="400" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://downloads.cnblogs.com/justinyoung/articleIMG/ixedit/ixedit002.swf" /><embed type="application/x-shockwave-flash" width="600" height="400" src="http://downloads.cnblogs.com/justinyoung/articleIMG/ixedit/ixedit002.swf"> </embed></object></p>
<h2>第六步：讲解一下常用的动画效果</h2>
<p>使用IxEdit可以方便的实现一些非常绚丽的动画效果，包括：</p>
<ol style="LIST-STYLE-TYPE: decimal; MARGIN: 15px 2px 15px 25px">
<li style="LIST-STYLE-TYPE: decimal">隐藏、显示</li>
<li style="LIST-STYLE-TYPE: decimal">滑动卷闸门</li>
<li style="LIST-STYLE-TYPE: decimal">渐隐、渐显</li>
<li style="LIST-STYLE-TYPE: decimal">动画效果</li>
</ol>
<p>视频中将会讲解一些常用的动画效果的应用。</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="600" height="400" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://downloads.cnblogs.com/justinyoung/articleIMG/ixedit/ixedit003.swf" /><embed type="application/x-shockwave-flash" width="600" height="400" src="http://downloads.cnblogs.com/justinyoung/articleIMG/ixedit/ixedit003.swf"> </embed></object></p>
<h2>第七步：讲解一下常用的特殊效果</h2>
<p>使用IxEdit可以方便的实现一些特殊的效果，包括：</p>
<ol style="LIST-STYLE-TYPE: decimal; MARGIN: 15px 2px 15px 25px">
<li style="LIST-STYLE-TYPE: decimal">拖动</li>
<li style="LIST-STYLE-TYPE: decimal">调整尺寸</li>
<li style="LIST-STYLE-TYPE: decimal">排序</li>
<li style="LIST-STYLE-TYPE: decimal">日期选择</li>
<li style="LIST-STYLE-TYPE: decimal">折叠面板</li>
<li style="LIST-STYLE-TYPE: decimal">生成tab</li>
<li style="LIST-STYLE-TYPE: decimal">弹出对话框</li>
</ol>
<p>视频中将会讲解一些常用的特殊效果的应用。</p>
<p>其他还是一些非常简单的效果，我就不浪费大家时间讲解了。大家只要稍微摸索一下就会了解啦。</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="600" height="400" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://downloads.cnblogs.com/justinyoung/articleIMG/ixedit/ixedit004.swf" /><embed type="application/x-shockwave-flash" width="600" height="400" src="http://downloads.cnblogs.com/justinyoung/articleIMG/ixedit/ixedit004.swf"></embed></object></p>
<h2>第八步：打开IxEdit的高级模式</h2>
<p>其实IxEdit是有高级模式的（使用 ixedit.advancedMode=true;），打开高级模式会将一些平时不常用的功能打开，供高手使用。下面的视频将告诉你，如果打开IxEdit的高级模式。</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="600" height="400" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://downloads.cnblogs.com/justinyoung/articleIMG/ixedit/ixedit005.swf" /><embed type="application/x-shockwave-flash" width="600" height="400" src="http://downloads.cnblogs.com/justinyoung/articleIMG/ixedit/ixedit005.swf"></embed></object></p>
<h2>第九步：如果部署IxEdit生成的页面代码</h2>
<p>忙活了半天，如果将成果应用到最终的页面中，这步就会讲到。部署完毕后，就不再需要Google Gears、chrome浏览器、IxEdit js库文件等等乱七八糟的东西啦。至于到底如何使用IxEdit生成的代码，请看下面的视频教程吧！</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="600" height="400" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://downloads.cnblogs.com/justinyoung/articleIMG/ixedit/ixedit006.swf" /><embed type="application/x-shockwave-flash" width="600" height="400" src="http://downloads.cnblogs.com/justinyoung/articleIMG/ixedit/ixedit006.swf"></embed></object></p>
<h1><span style="color: #ff0000;">最后唧歪几句</span></h1>
<p>因为IxEdit使用了Google Gears，所以，你的设置和工作，是可以保存起来，下次打开继续工作的。有点像“保存”和“打开”功能。默认情况下会自动保存。如果你需要“另存为”的话，可以点击左上角的IxEdit菜单，选择“导出/导入设置”命令实现。</p>
<p>IxEdit的确是个好东西，让可以让不会JavaScript的人方便的实现常见的JavaScript效果。与jQuery和jQuery UI的配合更是可以让你轻松的实现绚丽的效果。</p>
<p>但是IxEdit暂时还处于beta版，所以，还存在很多可以提升的空间。让我们对此充满期待吧！</p>
<p>想参加IxEdit汉化的朋友，请来博客园的<a title="IxEdit小组" href="http://space.cnblogs.com/group/ixedit/" target="_blank">IxEdit小组</a>哦。让IxEdit不仅仅只有官方英文版和日文版，也要有中文版哦！</p>
<h1><span style="color: #ff0000;">本文所有相关下载汇总</span></h1>
<h2><span style="color: #003366;">IxEdit相关下载列表</span></h2>
<h3>IxEdit相关下载列表</h3>
<ul>
<li><a title="IxEdit示例压缩包" href="http://downloads.cnblogs.com/justinyoung/articleIMG/ixedit/IxEdit_pack_cn.rar">本文提到的IxEdit示例压缩包(包含所有的js文件、css文件、汉化后的IxEdit文件)</a></li>
<li><a title="IxEdit视频教程" href="http://downloads.cnblogs.com/justinyoung/articleIMG/ixedit/ixedit001.swf">IxEdit视频教程001：介绍</a></li>
<li><a title="IxEdit视频教程" href="http://downloads.cnblogs.com/justinyoung/articleIMG/ixedit/ixedit002.swf">IxEdit视频教程002：DOM操作</a></li>
<li><a title="IxEdit视频教程" href="http://downloads.cnblogs.com/justinyoung/articleIMG/ixedit/ixedit003.swf">IxEdit视频教程003：动画</a></li>
<li><a title="IxEdit视频教程" href="http://downloads.cnblogs.com/justinyoung/articleIMG/ixedit/ixedit004.swf">IxEdit视频教程004：特殊效果</a></li>
<li><a title="IxEdit视频教程" href="http://downloads.cnblogs.com/justinyoung/articleIMG/ixedit/ixedit005.swf">IxEdit视频教程005：打开高级模式</a></li>
<li><a title="IxEdit视频教程" href="http://downloads.cnblogs.com/justinyoung/articleIMG/ixedit/ixedit006.swf">IxEdit视频教程006：部署生成的JavaScript代码</a></li>
</ul>
<h1 style="text-align: center;"><span style="color: #ff0000;">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</span></h1>
<h1 style="text-align: center;"> ·<span style="color: #ff0000;"><a title="打包下载" href="http://down.qiannao.com/space/file/juzixs/share/2009/12/26/IxEdit.rar/.page"><span style="color: #ff0000;">打包下载</span></a>！</span></h1>
<h1 style="text-align: center;"><span style="color: #ff0000;">&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</span></h1>
<h1><a href="http://www.cnblogs.com/JustinYoung/archive/2009/11/18/ixedit.html"></a></h1>
<img src="http://www.qyorg.com/?ak_action=api_record_view&id=1382&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.qyorg.com/jsjl/1382.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Award Bios增加SLIC2.1详细教程.OEM.WIN7</title>
		<link>http://www.qyorg.com/jsjl/1334.html</link>
		<comments>http://www.qyorg.com/jsjl/1334.html#comments</comments>
		<pubDate>Mon, 14 Dec 2009 15:46:27 +0000</pubDate>
		<dc:creator>橘子xs</dc:creator>
				<category><![CDATA[技术交流]]></category>
		<category><![CDATA[award bios]]></category>
		<category><![CDATA[BIOS]]></category>
		<category><![CDATA[isa]]></category>
		<category><![CDATA[OEM]]></category>
		<category><![CDATA[WIN7]]></category>
		<category><![CDATA[xp oem]]></category>
		<category><![CDATA[下载]]></category>
		<category><![CDATA[教程]]></category>

		<guid isPermaLink="false">http://www.qyorg.com/?p=1334</guid>
		<description><![CDATA[Award Bios增加SLIC2.1，可以硬激活Windows 7，微软是不会将这种方法封杀的，也就是我可以安装正版的OEM版Windows 7，可以去验证，它会说我用的是正版系统。

准备软件

（1）AwardTool，最新版的是V1.29，有汉化版的。

<span class="readmore"><a href="http://www.qyorg.com/jsjl/1334.html" title="Award Bios增加SLIC2.1详细教程.OEM.WIN7">阅读全文——共1386字</a></span>]]></description>
			<content:encoded><![CDATA[<p>Award Bios增加SLIC2.1，可以硬激活<span onclick="tagshow(event)">Windows</span> 7，<span onclick="tagshow(event)">微软</span>是不会将这种方法封杀的，也就是我可以安装正版的OEM版Windows 7，可以去验证，它会说我用的是正版<span onclick="tagshow(event)">系统</span>。</p>
<p><strong>准备软件</strong><br />
（1）AwardTool，最新版的是V1.29，有汉化版的。<br />
          使用注意：工具放在英文目录，尽量放在各盘根目录，不要放在桌面，需要安装netframework2.0以上。这个软件会随着品牌机正式安装Windows7，不断更新，充实证书和SLIC2.1的资料。<br />
<span style="color: #ff0000;">                                 <span style="text-decoration: underline;">AwardTool1.29汉化版下载</span></span>：<a title="网盘下载" href="http://down.qiannao.com/space/file/juzixs/-4e0a-4f20-5206-4eab/AwardTool129cn.rar/.page" target="_blank">网盘下载</a><span id="more-1334"></span></p>
<p>（2）SLIC_Dump_ToolKit，最新版的是V 2.2final，查看主板是否为SLIC2.1的工具，看看是否在BIOS里加入SLIC2.1模块成功。</p>
<p>一、找对你的主板Bios<br />
         可以在以下地方找到：一是你的主板光盘中，较老；二是从主板中备份出来，可以用winflash；三是到厂商的网站里<span onclick="tagshow(event)">下载</span>，较新。<br />
二、制作添加SLIC2.1<br />
        （1）查看证书与SLIC2.1是否相配<br />
                  实际上我已经在AwardTool软件中试过各品牌的证书与SLIC2.1是相配的，也补充加入了目前可以找到的品牌<span onclick="tagshow(event)">文件</span>，在点击“校验”.</p>
<p>        （2）打开AwardTool，选择你的的Bios文件<br />
        （3）选择主板制造商，<br />
                    - Pubkey 最适合华硕 ASUS<br />
                    &#8211; 超静3 最适合技嘉 Gigabyte<br />
                    &#8211; 其他可尝试 ISA 或 0+2<br />
        （4）选择要添加的OEM授权文件<br />
                   点击“SLIC文件”框右侧的浏览，会自动打开SLIC21的子目录，加入WIN7的OEM信息表<br />
                   点击“SLP文件”框右侧的浏览，会自动打开SLP的子目录，加入XP的OEM信息表<br />
                   点击“证书”框右侧的浏览，会自动打开软件主目录，点开“CERT”，选中相关.XRM-MS文件，将弹出“SLIC与证书匹配”的对话框.<br />
        （5）制作修改Bios<br />
                   勾选“记录日志”，单击最下面的“执行”。<br />
                   十几秒钟后会弹出一个新的对话框，说明是否制作成功，如成功了，会有文件名称和存放的位置。<br />
                   点击“确定”。生成了XXX_SLIC.BIN就这么简单，在存放Bios文件的目录下，还会同时生成几个过程文件，有：ACPI.BIN、ACPI_SLIC.BIN、MAIN.BIN、MAIN_SLIC.BIN，这是不要用的，可以删除。<br />
                   如果未成功，则要在高级选项界面进行<span onclick="tagshow(event)">设置</span>，高级选项主要对指定的主板有用，一般的主板不用选的，在改Bios不成功时可重复在此选择，特别是有些Bios容量很满时，用不同的选项多试几次就可能成功。<br />
三、刷新Bios<br />
         <span style="font-family: 宋体;">晚上教程很多，不做详述这里。</span></p>
<p><span style="font-family: 宋体;"> </span></p>
<p><span style="font-family: 宋体;">相关资源：<a title="联想官方Windows 7(32位/x86)简体中文旗舰版OEM光盘镜像" rel="bookmark" href="http://www.qyorg.com/?p=1339">联想官方Windows 7(32位/x86)简体中文旗舰版OEM光盘镜像</a></span></p>
<img src="http://www.qyorg.com/?ak_action=api_record_view&id=1334&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.qyorg.com/jsjl/1334.html/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Lua语言-安装，编辑，编译，运行指导</title>
		<link>http://www.qyorg.com/jsjl/125.html</link>
		<comments>http://www.qyorg.com/jsjl/125.html#comments</comments>
		<pubDate>Fri, 16 Jan 2009 06:50:12 +0000</pubDate>
		<dc:creator>橘子xs</dc:creator>
				<category><![CDATA[技术交流]]></category>
		<category><![CDATA[download html]]></category>
		<category><![CDATA[editplus]]></category>
		<category><![CDATA[exe]]></category>
		<category><![CDATA[lua]]></category>
		<category><![CDATA[luac]]></category>
		<category><![CDATA[tar gz]]></category>
		<category><![CDATA[www download]]></category>
		<category><![CDATA[技术]]></category>
		<category><![CDATA[语言]]></category>

		<guid isPermaLink="false">http://www.qyorg.com/?p=125</guid>
		<description><![CDATA[既然开始学习Lua，就应该对它有个一个大体的了解，对于Lua语言的介绍可以看这里

http://baike.baidu.com/view/416116.htm【百度百科】

英文好的朋友也可以直接到Lua官方网站去了解更多的内容

<span class="readmore"><a href="http://www.qyorg.com/jsjl/125.html" title="Lua语言-安装，编辑，编译，运行指导">阅读全文——共1659字</a></span>]]></description>
			<content:encoded><![CDATA[<p><span style="font-size: x-small;"><strong></strong></span></p>
<p><span style="font-size: x-small;">既然开始学习<span id="rlt_1" style="cursor: pointer; border-bottom: #fa891b 1px solid;" onclick="sendmsg('pw_ajax.php','action=relatetag&amp;tagname=Lua',this.id)">Lua</span>，就应该对它有个一个大体的了解，对于Lua语言的介绍可以看这里<br />
</span><a href="http://baike.baidu.com/view/416116.htm" target="_blank"><span style="font-size: x-small;">http://baike.baidu.com/view/416116.htm</span></a><span style="color: #ff0000;"><span style="font-size: x-small;">【百度百科】</span></span><br />
<span style="font-size: x-small;">英文好的朋友也可以直接到Lua官方<span style="text-decoration: underline;"><strong>网站</strong></span>去了解更多的内容</span><br />
<a href="http://www.lua.org/" target="_blank"><span style="font-size: x-small;">http://www.lua.org</span></a><span style="color: #ff0000;"><span style="font-size: x-small;">【Lua官方网站】</span></span><br />
<span style="font-size: x-small;">这次主要介绍一下学习Lua之前的准备工作。</span><br />
<span style="font-size: x-small;">（1） 下载Lua压缩包，下载页面是</span><a href="http://www.lua.org/download.html" target="_blank"><span style="font-size: x-small;">http://www.lua.org/download.html</span></a><span style="font-size: x-small;"> 最新版本是<span style="color: #ff0000;">lua-5.1.2</span></span><br />
<span style="font-size: x-small;">也可以点击这里直接下载：</span><a href="http://www.lua.org/ftp/lua-5.1.2.tar.gz" target="_blank"><span style="font-size: x-small;">http://www.lua.org/ftp/lua-5.1.2.tar.gz</span></a><span style="font-size: x-small;">  它的体积很小，只有210K</span><br />
<span style="font-size: x-small;">（2）解压文件，比如解压到 <strong><span style="color: #ff6600;">D:/lua-5.1.2</span></strong> 文件夹内<span style="color: #ff0000;">（以下均以此路径为例）。</span></span><br />
<span style="font-size: x-small;">（3）在 <span style="color: #ff6600;"><strong>D:/lua-5.1.2</strong> </span>内，存在名为 <span style="color: #ff6600;"><strong>/etc</strong> <span style="color: #000000;">的子目录。在此目录下找到 <span style="color: #ff6600;"><strong>luavs.bat </strong></span>文件，并将它复制到 <span style="color: #ff6600;"><strong>D:/lua-5.1.2 </strong></span><span style="color: #000000;">中。</span></span></span></span><br />
<span style="font-size: x-small;">（4）双击执行 <span style="color: #ff6600;"><strong>luavs.bat </strong></span>批处理文件，如果执行成功，在 <span style="color: #ff6600;"><strong>D:/lua-5.1.2/src</strong></span> 文件夹中会存在 <span style="color: #ff6600;"><strong>luac.exe </strong></span>和<span style="color: #ff6600;"><strong> lua.exe</strong></span>两个文件。</span><br />
<span style="font-size: x-small;">（5）将 <strong><span style="color: #ff6600;">D:/lua-5.1.2/src</span></strong> 加入到系统路径中。</span><br />
<span style="font-size: x-small;">（6）检测Lua是否安装成功：</span><br />
<span style="font-size: x-small;">在&#8221;<span style="color: #0000ff;"><strong>开始</strong></span>&#8220;&#8211;&#8221;<span style="color: #0000ff;"><strong>运行</strong></span>&#8220;处输入 <span style="color: #ff0000;"><strong>lua</strong></span> 然后回车，若出现cmd控制台界面且含有&#8221;[backcolor=rgb(255,]<span style="color: #808080;"><strong>Lua 5.1.2</strong></span>&#8220;之类的文字，则说明Lua已经成功安装。如果提示没有找到该命令，请检查<strong><span style="color: #ff6600;">D:/lua-5.1.2/src</span></strong> 文件夹中是否存在 <span style="color: #ff6600;"><strong>luac.exe </strong></span>和 <span style="color: #ff6600;"><strong>lua.exe </strong></span>两个文件，并确保已将 <strong><span style="color: #ff6600;">D:/lua-5.1.2/src</span></strong> 加入到系统路径中。</span><br />
<span style="font-size: x-small;">（7）打造一个简单的Lua编辑器：</span><br />
<span style="font-size: x-small;">这里我使用<span style="color: #339966;"><strong>EditPlus</strong></span>  最新版本的下载页面：</span><a href="http://www.onlinedown.net/soft/7116.htm" target="_blank"><span style="font-size: x-small;">http://www.onlinedown.net/soft/7116.htm</span></a><span style="font-size: x-small;"> </span><br />
<span style="text-decoration: underline;"><span style="color: #800080;">EditPlus 3.10 Build 193 汉化版：</span></span><a href="http://www.onlinedown.net/soft/7117.htm">http://www.onlinedown.net/soft/7117.htm</a><br />
<span style="font-size: x-small;">根据个人习惯可以选择汉化版本或者英文原版，这里我以英文原版进行说明。</span><br />
<span style="font-size: x-small;">安装上EditPlus第一次运行时，需要输入注册码或试用30天。在网上搜得注册码如下：</span><br />
<span style="font-size: x-small;"><strong>Name</strong>：<span style="color: #ff0000;">www.cnzz.cc</span><br />
<strong>Code</strong>：<span style="color: #ff0000;">60A8E-21F10-5BZ83-ADW4E-F3TC9</span></span><br />
<span style="font-size: x-small;">我使用的版本是 <span style="color: #339966;"><strong>EditPlus 2.31 Build 524</strong></span>，以上注册码可以使用。</span><br />
<span style="color: #000000;"><span style="font-size: x-small;">注册成功后，打开 EditPlus，选择<span style="color: #993366;"><strong>Tools &#8212; Preferences</strong></span> ，选择<span style="color: #800080;"><strong>setting &amp; syntax</strong></span>，点击右面的<span style="color: #800080;"><strong>Add</strong> </span>按钮增加一个文件类型，在下面的<span style="color: #800080;"><strong>Descrīption</strong></span>栏里填写<strong><span style="color: #ff0000;">Lua</span></strong>，<span style="color: #000000;"><strong>[backcolor=rgb(255,]<span style="color: #800080;">FIle extension</span></strong></span></span></span>栏里填写<strong><span style="color: #ff0000;">lua</span></strong>。注意到下面还有一栏可以选择<span style="color: #800080;"><strong>Syntax</strong></span> <span style="color: #800080;"><strong>File</strong></span>，这是提供Lua语法文件的地方。有了它，可以让EditPlus支持<span id="rlt_2" style="cursor: pointer; border-bottom: #fa891b 1px solid;" onclick="sendmsg('pw_ajax.php','action=relatetag&amp;tagname=lua代码',this.id)">lua代码</span>的高亮关键字显示。这个高亮支持代码可以在网上搜到，做成后缀名为[backcolor=rgb(255,]<span style="color: #0000ff;"><strong>stx</strong></span>的文件就可以了。<br />
<span style="color: #ff0000;"><span style="font-size: x-small;"><span style="color: #000000;">我已经将lua.stx文件上传，</span><span style="color: #000000;">下载地址</span>：<span style="color: #000000;"><a title="lua.stx" href="http://www.qiannao.com/space/show/juzixs/上传分享/2009/1/16/lua.stx/.page" target="_blank">lua.stx</a></span></span></span><br />
<span style="font-size: x-small;">再选择左面的<span style="color: #800080;"><strong>User tools</strong></span>选项，点击右面的<span style="color: #800080;"><strong>Add Tool &#8212; Program </strong></span></span><br />
<span style="font-size: x-small;">之后，在<span style="color: #800080;"><strong>Menu Text</strong></span>一栏中填入 <span style="color: #ff0000;"><strong>Run_Lua</strong></span> </span><br />
<span style="font-size: x-small;">在<span style="color: #800080;"><strong>Command</strong></span>一栏中填入 <strong><span style="color: #ff0000;">lua</span></strong>  </span><br />
<span style="font-size: x-small;">在 <span style="color: #800080;"><strong>Argument</strong></span>一栏中填入<strong><span style="color: #ff0000;">$(FileName)</span></strong></span><br />
<span style="font-size: x-small;">在<span style="color: #800080;"><strong>Initial directory</strong></span>一栏中填入<strong><span style="color: #ff0000;">$(FileDir)</span></strong></span><br />
<span style="font-size: x-small;">更改所有设置之后，不要忘记点击[backcolor=rgb(255,]<span style="color: #800080;"><strong>Apply</strong></span>应用，然后点击<span style="color: #800080;"><strong>OK</strong></span></span><br />
<span style="font-size: x-small;">选择<span style="color: #800080;"><strong>File &#8212; New &#8212; Others&#8230;</strong></span> ，然后选择我们刚刚新创建的<span style="color: #800080;"><strong>Lua</strong></span>文件，写入一行代码如下：</span><br />
<span style="color: #808080;"><span style="font-size: x-small;"><span style="color: #ff0000;">print</span><span style="color: #000000;">(&#8220;<span style="color: #ff00ff;">Hello,Lua</span>&#8220;)</span></span></span><br />
<span style="font-size: x-small;">然后保存一下。选择<span style="color: #800080;"><strong>Tools</strong></span>菜单，最下面有自定义命令<span style="color: #800080;"><strong>Run_Lua</strong></span>，点击此命令即可完成<span id="rlt_3" style="cursor: pointer; border-bottom: #fa891b 1px solid;" onclick="sendmsg('pw_ajax.php','action=relatetag&amp;tagname=lua文件',this.id)">lua文件</span>的执行（或者用快捷键 Ctrl + 1）。执行结果是弹出一个写有Hello,Lua的控制台。</span><br />
<span style="font-size: x-small;">至此，学习Lua的准备工作完毕，可以正式开始学习了。</span></p>
<img src="http://www.qyorg.com/?ak_action=api_record_view&id=125&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.qyorg.com/jsjl/125.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lua &#8212; LuaForWindows 环境配置</title>
		<link>http://www.qyorg.com/jsjl/122.html</link>
		<comments>http://www.qyorg.com/jsjl/122.html#comments</comments>
		<pubDate>Fri, 16 Jan 2009 06:41:18 +0000</pubDate>
		<dc:creator>橘子xs</dc:creator>
				<category><![CDATA[技术交流]]></category>
		<category><![CDATA[exit code]]></category>
		<category><![CDATA[global options]]></category>
		<category><![CDATA[interpreter]]></category>
		<category><![CDATA[lfw]]></category>
		<category><![CDATA[libraries]]></category>
		<category><![CDATA[lua]]></category>
		<category><![CDATA[luaforge]]></category>
		<category><![CDATA[reference]]></category>
		<category><![CDATA[scite]]></category>
		<category><![CDATA[stdout]]></category>
		<category><![CDATA[技术]]></category>
		<category><![CDATA[研发]]></category>
		<category><![CDATA[语言]]></category>

		<guid isPermaLink="false">http://www.qyorg.com/?p=122</guid>
		<description><![CDATA[环境：lua for windows (lfW)

主页：http://luaforwindows.luaforge.net/

lua for windows其实是一整套Lua的开发环境，它包括：

<span class="readmore"><a href="http://www.qyorg.com/jsjl/122.html" title="Lua &#8212; LuaForWindows 环境配置">阅读全文——共1172字</a></span>]]></description>
			<content:encoded><![CDATA[<div id="read_tpc" class="tpc_content">环境：lua for windows (lfW)<br />
主页：<a href="http://luaforwindows.luaforge.net/">http://luaforwindows.luaforge.net/</a></div>
<div class="tpc_content">lua for windows其实是一整套Lua的开发环境，它包括：<br />
Lua Interpreter（Lua解释器）<br />
Lua Reference Manual（Lua参考手册）<br />
Quick Lua Tour （Lua快速入门）<br />
Examples （Lua范例）<br />
Libraries with documentation （一些Lua库和文档）<br />
SciTE （一个很棒的多用途编辑器，已经对Lua做了特殊设置）</div>
<div class="tpc_content">其它详细的内容请到luaforge的主页上查看。</div>
<div class="tpc_content">之所以推荐这套环境是因为它整合了在windows学习和开发Lua所需要的所有东西，对于新手来说是非常体贴的，附带的SciTE只要经过简单配置就能够很方便的编写Lua程序，编译，运行，调试。它还是附带自动提示和代码自动补全功能的哦，对于用惯VC + VA的开发人员来说，实在是太亲切了。</div>
<div class="tpc_content">下面介绍一下整个lfW：<br />
下载lfw，最新的版本是5.1.3.13，直接安装，注意最后一步会询问SciTE编辑器是否使用“黑色”风格，我比较喜欢黑色底色，所以在这里打钩，之后继续。<br />
安装完成后，学习Lua所需要的一切环境就全部安装完毕，十分简单。</div>
<div class="tpc_content">下面可以测试是否安装成功<br />
打开SciTE，新建一个文件，输入一行lua代码：</div>
<div class="tpc_content">print(&#8220;hello,lua&#8221;)</div>
<div class="tpc_content">然后保存为hello.lua，注意保存文件时要加文件名后缀.lua，否则可能不能正确的运行。<br />
按F5，如果SciTE的输出窗口出现<br />
&gt;lua -e &#8220;io.stdout:setvbuf &#8216;no&#8217;&#8221; &#8220;hello.lua&#8221;<br />
hello,lua<br />
&gt;Exit code: 0<br />
字样则代表整个lua开发环境安装成功。</div>
<div class="tpc_content">如果对SciTE默认的配色方案或者字体不满意，点击【Options】菜单中的【Open Global Options File】，则可以看到SciTE环境的全局配置文件。里面可以修改的包括字体，颜色，窗口布局等等，修改相应的值即可。如果找不到自己想要修改的项目，可以再到【Options】的【Open black.properties】（如果使用的是白色背景，这里则是white.properties）文件中查找，这里存储的是更加细致的属性配置。修改这两个文件，基本上就能够满足大部分学习或是开发者的个人喜好。还有一点，在Global Options File中，查找command.help.*.lua，后面对应的是在编辑器中按下F1键弹出的chm格式的lua手册文件路径，这里需要修改一下，把文件路径改正确就可以了（5.1.3版本似乎没这个问题了）。</div>
<div class="tpc_content">整个环境还附带一个QuickLuaTour，是一个用Lua写的一个基于控制台的小教程，很易于理解。</div>
<div class="tpc_content">基本上整个环境就是这样，之后就可以开始学习Lua了。</div>
<img src="http://www.qyorg.com/?ak_action=api_record_view&id=122&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.qyorg.com/jsjl/122.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>LUA简介+Lua5.1中文手册CHM、Lua程序设计CHM&amp;PDF-下载</title>
		<link>http://www.qyorg.com/jsjl/118.html</link>
		<comments>http://www.qyorg.com/jsjl/118.html#comments</comments>
		<pubDate>Fri, 16 Jan 2009 06:30:34 +0000</pubDate>
		<dc:creator>橘子xs</dc:creator>
				<category><![CDATA[技术交流]]></category>
		<category><![CDATA[lua]]></category>
		<category><![CDATA[ource]]></category>
		<category><![CDATA[pdf]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[rafael nadal]]></category>
		<category><![CDATA[wow]]></category>
		<category><![CDATA[下载]]></category>
		<category><![CDATA[代码]]></category>
		<category><![CDATA[技术]]></category>
		<category><![CDATA[语言]]></category>

		<guid isPermaLink="false">http://www.qyorg.com/?p=118</guid>
		<description><![CDATA[　　Lua 是一个小巧的脚本语言。作者是巴西人。该语言的设计目的是为了嵌入应用程序中，从而为应用程序提供灵活的扩展和定制功能。它的主页是 www.lua.org。

　　Lua最著名的应用是在暴雪公司的网络游戏WOW中。

　　Lua脚本可以很容易的被C/C++代码调用，也可以反过来调用C/C++的函数，这使得Lua在应用程序中可以被广泛应用。不仅仅作为扩展脚本，也可以作为普通的配置文件，代替XML,Ini等文件格式，并且更容易理解和维护。

<span class="readmore"><a href="http://www.qyorg.com/jsjl/118.html" title="LUA简介+Lua5.1中文手册CHM、Lua程序设计CHM&#38;PDF-下载">阅读全文——共1843字</a></span>]]></description>
			<content:encoded><![CDATA[<p>　　Lua 是一个小巧的脚本语言。作者是巴西人。该语言的设计目的是为了嵌入应用程序中，从而为应用程序提供灵活的扩展和定制功能。它的主页是 <a href="http://www.lua.org">www.lua.org</a>。<br />
　　Lua最著名的应用是在暴雪公司的网络游戏WOW中。<br />
　　Lua脚本可以很容易的被C/C++代码调用，也可以反过来调用C/C++的函数，这使得Lua在应用程序中可以被广泛应用。不仅仅作为扩展脚本，也可以作为普通的配置文件，代替XML,Ini等文件格式，并且更容易理解和维护。<br />
　　Lua由标准C编写而成，代码简洁优美，几乎在所有操作系统和平台上都可以编译，运行。<br />
　　一个完整的Lua解释器不过200k，在目前所有脚本引擎中，Lua的速度是最快的。这一切都决定了Lua是作为嵌入式脚本的最佳选择。<br />
　　Lua 有一个同时进行的JIT项目，提供在特定平台上的即时编译功能，这将给Lua带来更加优秀的性能。请访问 <a href="http://luajit.org/">http://luajit.org/</a>来了解这个项目。<br />
　　和Python等脚本不同，Lua并没有提供强大的库，这是由它的定位决定的。所以Lua不适合作为开发独立应用程序的语言。不过Lua还是具备了比如数学运算和字符串处理等基本的功能。<br />
　　Lua 目前的最新版本是 5.1.<br />
　　<strong>1 目标</strong><br />
　　LUA的目标是成为一个很容易嵌入其它语言中使用的语言。大多数程序员也认为它的确做到了这一点。<br />
　　很多应用程序使用LUA作为自己的嵌入式脚本语言，以此来实现可配置性、可扩展性。这其中包括魔兽世界、博德之门等。<br />
　　<strong>2 特性</strong><br />
　　LUA有如下特性：<br />
　　轻量级 LUA语言的官方版本只包括一个精简的核心和最基本的库。这使得LUA体积小、启动速度快，从而适合嵌入在别的程序里。<br />
　　可扩展 LUA并不象其它许多&#8221;大而全&#8221;的语言那样，包括很多功能，比如网络通讯、图形界面等。但是LUA可以很容易地被扩展：由宿主语言(通常是C或C++)提供这些功能，LUA可以使用它们，就像是本来就内置的功能一样。<br />
　　其它特性 LUA还具有其它一些特性：同时支持面向过程编程和面向对象编程；自动内存管理；提供一系列数据结构，包括数组、链表、集合、字典、散列表等；语言内置正则表达式匹配；闭包(closure)；函数也可以看做一个值；提供多线程支持；等等。<br />
　　<strong>3 示例代码</strong><br />
　　是的，你猜对了：hello world&#8230;<br />
　　print &#8220;Hello, world!&#8221;<br />
　　一个比较复杂一点的例子，但是它展示了什么是闭包:<br />
　　function create_a_counter()<br />
　　local count = 0<br />
　　return function()<br />
　　count = count + 1<br />
　　return count<br />
　　end<br />
　　end<br />
　　create_a_counter()   返回一个记数器，每次调用这个记数器，都会得到一个比上次大1的值。</p>
<p><a class="external text" title="http://www.codenix.com/~tolua/" rel="nofollow" href="http://www.codenix.com/~tolua/"><span style="color: #3366bb;">tolua++</span></a> 一个很好的帮助程序员将C/C++代码整合进Lua的工具</p>
<h4>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</h4>
<h4><span style="color: #ff0000;">Lua5.1中文手册CHM下载：</span><span style="color: #ff0000;"><a title="lua-5.1中文手册.chm" href="http://www.qiannao.com/space/show/juzixs/上传分享/2009/1/16/lua-5.1中文手册.chm/.page" target="_blank">lua-5.1中文手册.chm</a></span></h4>
<h4>在线版本：<a href="http://manual.luaer.cn/">http://manual.luaer.cn/</a></h4>
<h4>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;</h4>
<h4><span style="color: #ff0000;">Lua程序设计（Programming in Lua）PDF下载：<a title="Lua程序设计_Programming_in_Lua.pdf" href="http://www.qiannao.com/space/show/juzixs/上传分享/2009/1/16/Lua程序设计_Programming_in_Lua.pdf/.page" target="_blank">Lua程序设计_Programming_in_Lua.pdf</a></span></h4>
<h4><span style="color: #ff0000;">                                                                                                              </span><span style="color: #ff0000;"><span><span style="color: #000000;"> <a title="Lua程序设计_Programming_in_Lua.chm" href="http://www.qiannao.com/space/show/juzixs/上传分享/2009/1/16/Lua程序设计_Programming_in_Lua.chm/.page" target="_blank">Lua程序设计_Programming in Lua.chm</a></span></span></span></h4>
<h4><span style="color: #ff0000;">在线版本：<a href="http://book.luaer.cn/">http://book.luaer.cn/</a></span></h4>
<div></div>
<p><span style="color: #ff0000;"></p>
<h4>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</h4>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p></span></p>
<img src="http://www.qyorg.com/?ak_action=api_record_view&id=118&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.qyorg.com/jsjl/118.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lua 程序设计初步</title>
		<link>http://www.qyorg.com/jsjl/114.html</link>
		<comments>http://www.qyorg.com/jsjl/114.html#comments</comments>
		<pubDate>Thu, 15 Jan 2009 07:16:20 +0000</pubDate>
		<dc:creator>橘子xs</dc:creator>
				<category><![CDATA[技术交流]]></category>
		<category><![CDATA[bf]]></category>
		<category><![CDATA[hello world]]></category>

		<guid isPermaLink="false">http://www.qyorg.com/?p=114</guid>
		<description><![CDATA[Lua 程序设计初步

作者： 沐枫 （第二人生成员）

版权所有转载请注明原出处

<span class="readmore"><a href="http://www.qyorg.com/jsjl/114.html" title="Lua 程序设计初步">阅读全文——共13346字</a></span>]]></description>
			<content:encoded><![CDATA[<p>Lua 程序设计初步</p>
<p>作者： 沐枫 （第二人生成员）<br />
版权所有转载请注明原出处</p>
<p>　　在这篇文章中，我想向大家介绍如何进行Lua程序设计。我假设大家都学过至少一门编程语言，比如Basic或C，特别是C。因为Lua的最大用途是在宿主程序中作为脚本使用的。<br />
　　Lua 的语法比较简单，学习起来也比较省力，但功能却并不弱。<br />
　　在Lua中，一切都是变量，除了关键字。请记住这句话。</p>
<p>I. 首先是注释<br />
　　写一个程序，总是少不了注释的。<br />
　　在Lua中，你可以使用单行注释和多行注释。<br />
　　单行注释中，连续两个减号&#8221;&#8211;&#8221;表示注释的开始，一直延续到行末为止。相当于C++语言中的&#8221;//&#8221;。<br />
　　多行注释中，由&#8221;&#8211;[["表示注释开始，并且一直延续到"]]&#8221;为止。这种注释相当于C语言中的&#8221;/*…*/&#8221;。在注释当中，&#8221;[["和"]]&#8221;是可以嵌套的。<br />
II. Lua编程<br />
　　经典的&#8221;Hello world&#8221;的程序总是被用来开始介绍一种语言。在Lua中，写一个这样的程序很简单：<br />
　　print(&#8220;Hello world&#8221;)<br />
　　在Lua中，语句之间可以用分号&#8221;；&#8221;隔开，也可以用空白隔开。一般来说，如果多个语句写在同一行的话，建议总是用分号隔开。<br />
　　Lua 有好几种程序控制语句，如：</p>
<p>　　条件控制：if 条件 then … elseif 条件 then … else … end<br />
　　While循环：while 条件 do … end<br />
　　Repeat循环：repeat … until 条件<br />
　　For循环：for 变量 = 初值，终点值，步进 do … end<br />
　　For循环：for 变量1，变量2，… ，变量N in表或枚举函数 do … end</p>
<p>　　注意一下，for的循环变量总是只作用于for的局部变量，你也可以省略步进值，这时候，for循环会使用1作为步进值。<br />
　　你可以用break来中止一个循环。<br />
　　如果你有程序设计的基础，比如你学过Basic，C之类的，你会觉得Lua也不难。但Lua有几个地方是明显不同于这些程序设计语言的，所以请特别注意。</p>
<p>　　．语句块<br />
　　　　语句块在C++中是用&#8221;{&#8220;和&#8221;}&#8221;括起来的，在Lua中，它是用do 和 end 括起来的。比如：<br />
　　　　do print(&#8220;Hello&#8221;) end<br />
　　　　你可以在 函数 中和 语句块 中定局部变量。</p>
<p>　　．赋值语句<br />
　　　　赋值语句在Lua被强化了。它可以同时给多个变量赋值。<br />
　　　　例如：<br />
　　　　a,b,c,d=1,2,3,4<br />
　　　　甚至是：<br />
　　　　a,b=b,a &#8212; 多么方便的交换变量功能啊。<br />
　　　　在默认情况下，变量总是认为是全局的。假如你要定义局部变量，则在第一次赋值的时候，需要用local说明。比如：<br />
　　　　local a,b,c = 1,2,3 &#8212; a,b,c都是局部变量</p>
<p>　　．数值运算<br />
　　　　和C语言一样，支持 +, -, *, /。但Lua还多了一个&#8221;^&#8221;。这表示指数乘方运算。比如2^3 结果为8, 2^4结果为16。<br />
　　　　连接两个字符串，可以用&#8221;..&#8221;运处符。如：<br />
　　　　&#8221;This a &#8221; .. &#8220;string.&#8221; &#8212; 等于 &#8220;this a string&#8221;</p>
<p>　　．比较运算<br />
　　　　&lt; &gt; &lt;= &gt;= == ~=<br />
　　　　分别表示 小于，大于，不大于，不小于，相等，不相等<br />
　　　　所有这些操作符总是返回true或false。<br />
　　　　对于Table，Function和Userdata类型的数据，只有 == 和 ~=可以用。相等表示两个变量引用的是同一个数据。比如：<br />
　　　　a={1,2}<br />
　　　　b=a<br />
　　　　print(a==b, a~=b) &#8212; true, false<br />
　　　　a={1,2}<br />
　　　　b={1,2}<br />
　　　　print(a==b, a~=b) &#8212; false, true</p>
<p>　　．逻辑运算<br />
　　　　and, or, not<br />
　　　　其中，and 和 or 与C语言区别特别大。<br />
　　　　在这里，请先记住，在Lua中，只有false和nil才计算为false，其它任何数据都计算为true，0也是true！<br />
　　　　and 和 or的运算结果不是true和false，而是和它的两个操作数相关。<br />
　　　　a and b：如果a为false，则返回a；否则返回b<br />
　　　　a or b：如果 a 为true，则返回a；否则返回b</p>
<p>　　　　举几个例子：<br />
　　　　 print(4 and 5) &#8211;&gt; 5<br />
　　　　 print(nil and 13) &#8211;&gt; nil<br />
　　　　 print(false and 13) &#8211;&gt; false<br />
　　　　 print(4 or 5) &#8211;&gt; 4<br />
　　　　 print(false or 5) &#8211;&gt; 5</p>
<p>　　　　在Lua中这是很有用的特性，也是比较令人混洧的特性。<br />
　　　　我们可以模拟C语言中的语句：x = a? b : c，在Lua中，可以写成：x = a and b or c。<br />
　　　　最有用的语句是： x = x or v，它相当于：if not x then x = v end 。</p>
<p>　　．运算符优先级，从高到低顺序如下：<br />
　　　　^<br />
　　　　not &#8211; （一元运算）<br />
　　　　 * / 　　　　 + -<br />
　　　　 ..（字符串连接）<br />
　　　　 &lt; &gt; &lt;= &gt;= ~= ==<br />
　　　　 and<br />
　　　　 or</p>
<p>III. 关键字<br />
　　关键字是不能做为变量的。Lua的关键字不多，就以下几个：<br />
　　and break do else elseif<br />
　　end false for function if<br />
　　in local nil not or<br />
　　repeat return then true until　while</p>
<p>IV. 变量类型<br />
　　怎么确定一个变量是什么类型的呢？大家可以用type()函数来检查。Lua支持的类型有以下几种：</p>
<p>　　Nil 空值，所有没有使用过的变量，都是nil。nil既是值，又是类型。<br />
　　Boolean 布尔值<br />
　　Number 数值，在Lua里，数值相当于C语言的double<br />
　　String 字符串，如果你愿意的话，字符串是可以包含&#8217;\0&#8242;字符的<br />
　　Table 关系表类型，这个类型功能比较强大，我们在后面慢慢说。<br />
　　Function 函数类型，不要怀疑，函数也是一种类型，也就是说，所有的函数，它本身就是一个变量。<br />
　　Userdata 嗯，这个类型专门用来和Lua的宿主打交道的。宿主通常是用C和C++来编写的，在这种情况下，Userdata可以是宿主的任意数据类型，常用的有Struct和指针。<br />
　　Thread　　 线程类型，在Lua中没有真正的线程。Lua中可以将一个函数分成几部份运行。如果感兴趣的话，可以去看看Lua的文档。</p>
<p>V. 变量的定义<br />
　　所有的语言，都要用到变量。在Lua中，不管你在什么地方使用变量，都不需要声明，并且所有的这些变量总是全局变量，除非，你在前面加上&#8221;local&#8221;。<br />
　　这一点要特别注意，因为你可能想在函数里使用局部变量，却忘了用local来说明。<br />
　　至于变量名字，它是大小写相关的。也就是说，A和a是两个不同的变量。<br />
　　定义一个变量的方法就是赋值。&#8221;＝&#8221;操作就是用来赋值的<br />
　　我们一起来定义几种常用类型的变量吧。<br />
　　A. Nil<br />
　　　　正如前面所说的，没有使用过的变量的值，都是Nil。有时候我们也需要将一个变量清除，这时候，我们可以直接给变量赋以nil值。如：<br />
　　　　var1=nil &#8212; 请注意 nil 一定要小写</p>
<p>　　B. Boolean<br />
　　　　布尔值通常是用在进行条件判断的时候。布尔值有两种：true 和 false。在Lua中，只有false和nil才被计算为false，而所有任何其它类型的值，都是true。比如0，空串等等，都是true。不要被C语言的习惯所误导，0在Lua中的的确确是true。你也可以直接给一个变量赋以Boolean类型的值，如：<br />
　　　　varboolean = true</p>
<p>　　C. Number<br />
　　　　在Lua中，是没有整数类型的，也不需要。一般情况下，只要数值不是很大（比如不超过100,000,000,000,000），是不会产生舍入误差的。在很多CPU上，实数的运算并不比整数慢。<br />
　　　　实数的表示方法，同C语言类似，如：<br />
　　　　4 0.4 4.57e-3 0.3e12 5e+20</p>
<p>　　D. String<br />
　　　　字符串，总是一种非常常用的高级类型。在Lua中，你可以非常方便的定义很长很长的字符串。<br />
　　　　字符串在Lua中有几种方法来表示，最通用的方法，是用双引号或单引号来括起一个字符串的，如：<br />
　　　　&#8221;This is a string.&#8221;<br />
　　　　和C语言相同的，它支持一些转义字符，列表如下：<br />
　　　　\a bell<br />
　　　　\b back space<br />
　　　　\f form feed<br />
　　　　\n newline<br />
　　　　\r carriage return<br />
　　　　\t horizontal tab<br />
　　　　\v vertical tab<br />
　　　　\\ backslash<br />
　　　　\&#8221; double quote<br />
　　　　\&#8217; single quote<br />
　　　　\[ left square bracket<br />
　　　　\] right square bracket</p>
<p>　　　　由于这种字符串只能写在一行中，因此，不可避免的要用到转义字符。加入了转义字符的串，看起来实在是不敢恭维，比如：<br />
　　　　&#8221;one line\nnext line\n\&#8221;in quotes\&#8221;, &#8216;in quotes&#8217;&#8221;<br />
　　　　一大堆的&#8221;\&#8221;符号让人看起来很倒胃口。如果你与我有同感，那么，我们在Lua中，可以用另一种表示方法：用&#8221;[["和"]]&#8221;将多行的字符串括起来，如：<br />
　　　　page = [[<br />
　　　　&lt;HTML&gt;<br />
　　　　　　&lt;HEAD&gt;<br />
　　　　　　　　&lt;TITLE&gt;An HTML Page&lt;/TITLE&gt;<br />
　　　　　　&lt;/HEAD&gt;<br />
　　　　　　&lt;BODY&gt;<br />
　　　　　　　　&lt;A HREF="http://www.lua.org"&gt;Lua&lt;/A&gt;<br />
　　　　　　　　[[a text between double brackets]]<br />
　　　　　　&lt;/BODY&gt;<br />
　　　　&lt;/HTML&gt;<br />
　　　　]]</p>
<p>　　　　值得注意的是，在这种字符串中，如果含有单独使用的&#8221;[["或"]]&#8221;就仍然得用&#8221;\["或"\]&#8220;来避免歧义。当然，这种情况是极少会发生的。</p>
<p>E. Table<br />
　　　　关系表类型，这是一个很强大的类型。我们可以把这个类型看作是一个数组。只是C语言的数组，只能用正整数来作索引；在Lua中，你可以用任意类型来作数组的索引，除了nil。同样，在C语言中，数组的内容只允许一种类型；在Lua中，你也可以用任意类型的值来作数组的内容，除了nil。<br />
　　　　Table的定义很简单，它的主要特征是用&#8221;{&#8220;和&#8221;}&#8221;来括起一系列数据元素的。比如：</p>
<p>　　　　T1 = {} &#8212; 定义一个空表<br />
　　　　T1[1]=10 &#8212; 然后我们就可以象C语言一样来使用它了。<br />
　　　　T1["John"]={Age=27, Gender=&#8221;Male&#8221;}<br />
　　　　这一句相当于：<br />
　　　　T1["John"]={} &#8212; 必须先定义成一个表，还记得未定义的变量是nil类型吗<br />
　　　　T1["John"]["Age"]=27<br />
　　　　T1["John"]["Gender"]=&#8221;Male&#8221;<br />
　　　　当表的索引是字符串的时候，我们可以简写成：<br />
　　　　T1.John={}<br />
　　　　T1.John.Age=27<br />
　　　　T1.John.Gender=&#8221;Male&#8221;<br />
　　　　或<br />
　　　　T1.John{Age=27, Gender=&#8221;Male&#8221;}<br />
　　　　这是一个很强的特性。</p>
<p>　　　　在定义表的时候，我们可以把所有的数据内容一起写在&#8221;{&#8220;和&#8221;}&#8221;之间，这样子是非常方便，而且很好看。比如，前面的T1的定义，我们可以这么写：</p>
<p>　　　　T1=<br />
　　　　{<br />
　　　　　　10, &#8212; 相当于 [1] = 10<br />
　　　　　　[100] = 40,<br />
　　　　　　John= &#8212; 如果你原意，你还可以写成：["John"] =<br />
　　　　　　{<br />
　　　　　　　　Age=27, &#8212; 如果你原意，你还可以写成：["Age"] =27<br />
　　　　　　　　Gender=Male &#8212; 如果你原意，你还可以写成：["Gender"] =Male<br />
　　　　　　},<br />
　　　　　　20 &#8212; 相当于 [2] = 20<br />
　　　　}</p>
<p>　　　　看起来很漂亮，不是吗？我们在写的时候，需要注意三点：<br />
　　　　第一，所有元素之间，总是用逗号&#8221;，&#8221;隔开；<br />
　　　　第二，所有索引值都需要用&#8221;["和"]&#8220;括起来；如果是字符串，还可以去掉引号和中括号；<br />
　　　　第三，如果不写索引，则索引就会被认为是数字，并按顺序自动从1往后编；</p>
<p>　　　　表类型的构造是如此的方便，以致于常常被人用来代替配置文件。是的，不用怀疑，它比ini文件要漂亮，并且强大的多。</p>
<p>　　F. Function<br />
　　　　函数，在Lua中，函数的定义也很简单。典型的定义如下：<br />
　　　　function add(a,b) &#8212; add 是函数名字，a和b是参数名字<br />
　　　　 return a+b &#8212; return 用来返回函数的运行结果<br />
　　　　end</p>
<p>　　　　请注意，return语言一定要写在end之前。假如你非要在中间放上一句return，那么请写成：do return end。<br />
　　　　还记得前面说过，函数也是变量类型吗？上面的函数定义，其实相当于：<br />
　　　　add = function (a,b) return a+b end<br />
　　　　当你重新给add赋值时，它就不再表示这个函数了。你甚至可以赋给add任意数据，包括nil （这样，你就清除了add变量）。Function是不是很象C语言的函数指针呢？</p>
<p>　　　　和C语言一样，Lua的函数可以接受可变参数个数，它同样是用&#8221;…&#8221;来定义的，比如：<br />
　　　　function sum (a,b,…)<br />
　　　　如果想取得…所代表的参数，可以在函数中访问arg局部变量（表类型）得到。<br />
　　　　如 sum(1,2,3,4)<br />
　　　　则，在函数中，a = 1, b = 2, arg = {3, 4}<br />
　　　　更可贵的是，它可以同时返回多个结果，比如：<br />
　　　　function s()<br />
　　　　　　return 1,2,3,4<br />
　　　　end<br />
　　　　a,b,c,d = s() &#8212; 此时，a = 1, b = 2, c = 3, d = 4<br />
前面说过，表类型可以拥有任意类型的值，包括函数！因此，有一个很强大的特性是，拥有函数的表，哦，我想更恰当的应该说是对象吧。Lua可以使用面向对象编程了。不信？那我举例如下：</p>
<p>　　　　t =<br />
　　　　{<br />
　　　　 Age = 27<br />
　　　　 add = function(self, n) self.Age = self.Age+n end<br />
　　　　}<br />
　　　　print(t.Age) &#8212; 27<br />
　　　　t.add(t, 10)<br />
　　　　print(t.Age) &#8212; 37</p>
<p>　　　　不过，t.add(t,10) 这一句实在是有点土对吧？没关系，在Lua中，你可以简写成：<br />
　　　　t:add(10) &#8212; 相当于 t.add(t,10)</p>
<p>　　G. Userdata 和 Thread<br />
　　　　这两个类型的话题，超出了本文的内容，就不打算细说了。</p>
<p>VI. 结束语<br />
　　就这么结束了吗？当然不是，接下来，需要用Lua解释器，来帮助你理解和实践了。这篇小文只是帮助你大体了解Lua的语法。如果你有编程基础，相信会很快对Lua上手了。<br />
　　就象C语言一样，Lua提供了相当多的标准函数来增强语言的功能。使用这些标准函数，你可以很方便的操作各种数据类型，并处理输入输出。有关这方面的信息，你可以参考《Programming in Lua 》一书，你可以在网络上直接观看电子版，网址为：<a href="http://www.lua.org/pil/index.html" target="_blank"><span style="color: #800080;">http://www.lua.org/pil/index.html</span></a></p>
<p><!--++ plugin_code qcomic begin-->&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
使用流程<br />
1. 函数的使用<br />
以下程序演示了如何在Lua中使用函数, 及局部变量<br />
例e02.lua<br />
&#8211; functions<br />
function pythagorean(a, b)   <br />
local c2 = a^2 + b^2   <br />
return sqrt(c2)<br />
end<br />
print(pythagorean(3,4))</p>
<p>运行结果<br />
5</p>
<p>程序说明<br />
在Lua中函数的定义格式为:<br />
function 函数名(参数)<br />
&#8230;<br />
end<br />
与Pascal语言不同, end不需要与begin配对, 只需要在函数结束后打个end就可以了.<br />
本例函数的作用是已知直角三角形直角边, 求斜边长度. 参数a,b分别表示直角边长,<br />
在函数内定义了local形变量用于存储斜边的平方. 与C语言相同, 定义在函数内的代<br />
码不会被直接执行, 只有主程序调用时才会被执行.<br />
local表示定义一个局部变量, 如果不加local刚表示c2为一个全局变量, local的作用域<br />
是在最里层的end和其配对的关键字之间, 如if &#8230; end, while &#8230; end等。全局变量的<br />
作用域是整个程序。</p>
<p>2. 循环语句<br />
例e03.lua<br />
&#8211; Loops<br />
for i=1,5 do   <br />
print(&#8220;i is now &#8221; .. i)<br />
end</p>
<p>运行结果<br />
i is now 1<br />
i is now 2<br />
i is now 3<br />
i is now 4<br />
i is now 5</p>
<p>程序说明<br />
这里偶们用到了for语句<br />
for 变量 = 参数1, 参数2, 参数3 do<br />
循环体<br />
end<br />
变量将以参数3为步长, 由参数1变化到参数2<br />
例如:   <br />
for i=1,f(x) do print(i) end<br />
for i=10,1,-1 do print(i) end</p>
<p>这里print(&#8220;i is now &#8221; .. i)中，偶们用到了..，这是用来连接两个字符串的，<br />
偶在(1)的试试看中提到的，不知道你们答对了没有。<br />
虽然这里i是一个整型量，Lua在处理的时候会自动转成字符串型，不需偶们费心。</p>
<p>3. 条件分支语句<br />
例e04.lua<br />
&#8211; Loops and conditionals<br />
for i=1,5 do<br />
print(“i is now “ .. i)<br />
  if i &lt; 2 then     <br />
  print(“small”)   <br />
  elseif i &lt; 4 then     <br />
  print(“medium”)   <br />
  else     <br />
  print(“big”)   <br />
  end<br />
end</p>
<p>运行结果<br />
i is now 1<br />
small<br />
i is now 2<br />
medium<br />
i is now 3<br />
medium<br />
i is now 4<br />
big<br />
i is now 5<br />
big</p>
<p>程序说明<br />
if else用法比较简单, 类似于C语言, 不过此处需要注意的是整个if只需要一个end,<br />
哪怕用了多个elseif, 也是一个end.<br />
例如<br />
if op == &#8220;+&#8221; then<br />
  r = a + b<br />
elseif op == &#8220;-&#8221; then<br />
  r = a &#8211; b<br />
elseif op == &#8220;*&#8221; then<br />
  r = a*b<br />
elseif op == &#8220;/&#8221; then<br />
  r = a/b<br />
else<br />
  error(&#8220;invalid operation&#8221;)<br />
end</p>
<p>4.试试看<br />
Lua中除了for循环以外, 还支持多种循环, 请用while&#8230;do和repeat&#8230;until改写本文中的for程序<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
数组的使用</p>
<p>1.简介<br />
Lua语言只有一种基本数据结构, 那就是table, 所有其他数据结构如数组啦,<br />
类啦, 都可以由table实现.</p>
<p>2.table的下标<br />
例e05.lua<br />
&#8211; Arrays<br />
myData = {}<br />
myData[0] = “foo”<br />
myData[1] = 42</p>
<p>&#8211; Hash tables<br />
myData[“bar”] = “baz”</p>
<p>&#8211; Iterate through the<br />
&#8211; structure<br />
for key, value in myData do   <br />
print(key .. “=“ .. value)<br />
end</p>
<p>输出结果<br />
0=foo<br />
1=42<br />
bar=baz</p>
<p>程序说明<br />
首先定义了一个table myData={}, 然后用数字作为下标赋了两个值给它. 这种<br />
定义方法类似于C中的数组, 但与数组不同的是, 每个数组元素不需要为相同类型,<br />
就像本例中一个为整型, 一个为字符串.</p>
<p>程序第二部分, 以字符串做为下标, 又向table内增加了一个元素. 这种table非常<br />
像STL里面的map. table下标可以为Lua所支持的任意基本类型, 除了nil值以外.</p>
<p>Lua对Table占用内存的处理是自动的, 如下面这段代码<br />
a = {}<br />
a["x"] = 10<br />
b = a   &#8211; `b&#8217; refers to the same table as `a&#8217;<br />
print(b["x"]) &#8211;&gt; 10<br />
b["x"] = 20<br />
print(a["x"]) &#8211;&gt; 20<br />
a = nil   &#8211; now only `b&#8217; still refers to the table<br />
b = nil   &#8211; now there are no references left to the table<br />
b和a都指向相同的table, 只占用一块内存, 当执行到a = nil时, b仍然指向table,<br />
而当执行到b=nil时, 因为没有指向table的变量了, 所以Lua会自动释放table所占内存</p>
<p>3.Table的嵌套<br />
Table的使用还可以嵌套，如下例<br />
例e06.lua<br />
&#8211; Table ‘constructor’<br />
myPolygon = {   <br />
color=“blue”,   <br />
thickness=2,   <br />
npoints=4;   <br />
{x=0,   y=0},   <br />
{x=-10, y=0},   <br />
{x=-5, y=4},   <br />
{x=0,   y=4}<br />
}</p>
<p>&#8211; Print the color<br />
print(myPolygon[“color”])</p>
<p>&#8211; Print it again using dot<br />
&#8211; notation<br />
print(myPolygon.color)</p>
<p>&#8211; The points are accessible<br />
&#8211; in myPolygon[1] to myPolygon[4]</p>
<p>&#8211; Print the second point’s x<br />
&#8211; coordinate<br />
print(myPolygon[2].x)</p>
<p>程序说明<br />
首先建立一个table, 与上一例不同的是，在table的constructor里面有{x=0,y=0},<br />
这是什么意思呢？ 这其实就是一个小table, 定义在了大table之内, 小table的<br />
table名省略了.<br />
最后一行myPolygon[2].x，就是大table里面小table的访问方式.<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
如何简化你的宏.</p>
<p>虽然以上介绍让我们了解道宏可以完成非常强大的功能，但暴雪实在太小气了，仅仅只给我们255个字符来编写宏的内容，假如你的宏的功能比较罗嗦，那就很麻烦了，所以以下我介绍一下一些简化宏的小技巧：</p>
<p>1、定义全局变量<br />
看完之前Lua介绍的人该都知道把，在Lua里，所有的变量都是全局变量，也就是说任何一个变量只要你在开始游戏后做过定义，那么到游戏结束时只要你不重新定义他都是有效的。但为了不让我们自己不混淆做全局用的变量和局部使用的变量，我们可以采用大小写区分的办法，即大写一律做为全局变量使用，小写都用局部变量。<br />
这样，我们可以在一个宏里把自己常用的魔法/技能都定义成变量来表示，比如我是个术士，就可以这样：<br />
F=&#8221;腐蚀术(等级 3)&#8221;   X=&#8221;献祭(等级 3)&#8221;&#8230;&#8230;.<br />
之后，我们要使用这样魔法的时候，只要直接用F或X来代替就可以了，连&#8221;"都可以省掉，是不是很方便呢~<br />
或者还可以把一些常见的API函数变量也自己定义：<br />
T=&#8221;target&#8221; P=&#8221;player&#8221;&#8230;..<br />
使用的时候和上面一样。</p>
<p>2、自定义函数<br />
说实在话，魔兽的有些函数实在长的过头，很多时候珍贵的字节都给函数占去了。所以必要的时候我们就得用自定义函数的方法去简化这些函数。<br />
自定义函数的语句为：<br />
function 函数名称(函数变量1、函数变量2&#8230;.) return 函数返回值 end<br />
比如，使用法术的这个函数是CastByName()，我们可以在宏里这样写：<br />
/scirpt function C(a) CastByName(a) end<br />
运行后，我们其他宏使用法术就只要直接用C()就可以了，是不是很方便呢？<br />
或是说话的函数：<br />
/script function S(a) SendChatMessage(a,&#8221;SAY&#8221;) end<br />
之后你要控制人物说话就用S()就可以了。</p>
<p>如果是有返回值的函数：<br />
/script<br />
function N(a)<br />
return UNitName(a)       &#8211;return之后就是表示函数的返回值,但return必须在end前面.<br />
end<br />
如果以后你要调用目标的名字，直接用 x=N(&#8220;target&#8221;)，如果按前面第一点定义了全局变量的话，更简单x=N(T)。</p>
<p>这样，我们就可以把重要的字节都用在宏的判断内容上，而不是沉长的函数上了。如果你还有什么更好的简化方法，可以跟贴哦。<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-<br />
关于背包物品使用整理类的宏的制作</p>
<p>由于游戏提供的函数无法直接由物品名称调用该物品，所以通常简单的使用物品宏是比较麻烦的，一定要把使用的物品放在背包内特定的位置</p>
<p>；或则大多术士都需要的问题，能随时监视自己的灵魂碎片（当然，有插件可以做到这一点）。</p>
<p>以下我写写关于如何制作这类宏：</p>
<p>首先，我们要在背包里找到自己需要的东西，必须用循环里遍历这些包。由于放的位置有2个参数，1个是包的编号，一个是包内槽位的编号，</p>
<p>所以我们需要一个循环嵌套来搜索：</p>
<p>以下假设我们身上都是16格的包：<br />
for bag=0,4,1 do     &#8211;包的编号为从右到左，0,1,2,3,4<br />
for cw=1,16,1 do   &#8211;槽位的编号为上到下，左到右 1,2,3,4,5&#8230;&#8230;16<br />
&#8230;&#8230;&#8230;&#8230;..   &#8211;这里我们可以写如判断物品是否为我们需要的东西的语句<br />
end         &#8211;表示内循环结束      <br />
end           &#8211;外循环结束</p>
<p>或者用其他方式做这个循环：<br />
While循环：while 条件 do … end</p>
<p>Repeat循环：repeat … until 条件</p>
<p>然后，要处理的是物品的判断：<br />
我们有两个函数可以使用<br />
GetContainerItemLink() 和 GetContainerItemInfo()<br />
这两个函数使用的变量都是2个，一个是包的编号，一个是槽位的编号，但他们的返回值不同</p>
<p>GetContainerItemLink()是返回一个带着物品名字的连接，如果你用聊天函数把返回值说出来就可以看到，说出来的不光是物品的名称，还是</p>
<p>一个可以连接到物品详细内容窗口的连接。</p>
<p>比如，你的包里4，1的位置放了一块熊肉，那么用/script SendChatMessage(GetContainerItemLink(4,1),&#8221;SAY&#8221;)后，就可以看到自己说“[熊</p>
<p>肉]”，而且用鼠标点一下说的内容，还可以弹出一个描写这块肉的窗口。</p>
<p>但要注意，直接用&#8221;[熊肉]&#8220;这样字符串来判断这个物品是不行的，例如：</p>
<p>if GetContainerItemLink(4,1)==&#8221;[熊肉]&#8221; then &#8230;.. end<br />
这个判断是无效的。</p>
<p>正确的方法是，先把要做判断的物品的赋一个变量，再用变量做出判断：</p>
<p>rou=GetContainerItemLink(4,1)     &#8211;把物品连接值赋给rou</p>
<p>if GetContainerItemLink(4,1)==rou then &#8230;.. end   &#8211;现在就可以正常判断物品了</p>
<p>最后要注意的是，这个函数无法对术士的灵魂碎片做出正确的判断，意思就是，虽然灵魂碎片用这个函数显示出来是一样的，但这个函数却认</p>
<p>为所有的灵魂碎片都是不同的东西，即你把这个灵魂碎片的连接赋给一个变量后，这个变量就只能判断这个灵魂碎片，其他的灵魂碎片就无法</p>
<p>作出判断，奇怪把。所以要判断灵魂碎片，就必须用到第二个函数GetContainerItemInfo()</p>
<p>GetContainerItemInfo()的返回值非常多，几乎所有的物品信息都可以返回，但我们这里判断只用它返回的第一个值。<br />
我们可以先用聊天函数来看看第一个返回值是什么样子的：<br />
/script<br />
a=GetContainerItemInfo(4,1)<br />
SendChatMessage(a,&#8221;SAY&#8221;)</p>
<p>可以看到，返回值相当长的英文，但物品的关键字是在后面。</p>
<p>这样，我们就有2种方法来使用这个函数来判断物品。</p>
<p>1、和前一个函数的方法一样，用变量存储值后再判断，前提是要把判断的物品放在特定的位置赋一下值。<br />
2、只使用特定物品，把物品的判断关键字写在函数里，然后用string.find()来判断他。<br />
例子：某物品的关键字是bd<br />
if string.find(GetContainerItemInfo(4,1),bd) then &#8230;..end &#8211;判断包1，4位置是否存在关键字为bd物品。</p>
<p>接着要处理的是物品的使用和交换。<br />
使用特定背包位置的物品函数：UseContainerItem(index,slot)<br />
这个好理解，不用多解释了把。</p>
<p>拾取/放下物品的函数：PickupContainerItem(index,slot)<br />
这个函数有意思，你鼠标上没抓着东西的时候就是帮你拿起特定位置的物品，有的话就变成放下物品到特定的位置并交换拿起该位置的物品。</p>
<p>所以要完成2个物品在包内的交换要使用3次这个函数：<br />
PickupContainerItem(4,1) &#8211;拿起4，1位置的物品<br />
PickupContainerItem(1,4) &#8211;放在1，4位置并拿起1，4位置的物品<br />
PickupContainerItem(4,1) &#8211;把1，4位置的物品放在4，1位置</p>
<p>好拉，把以上几点组合后宏就基本完成了：</p>
<p>下面的例子是关于灵魂碎片的整理，把前4个包的灵魂碎片全放到最后一个包内：</p>
<p>/script<br />
bag=0 cw=1 sc=1   &#8211;定义好变量，bag是包的编号，cw表示查找包的槽位，sc指向最后一个包内的槽位<br />
for bag=0,3,1 do &#8211;从0号包开始，到3号包结束，最后一个包不搜索。<br />
for cw=1,16,1 do   &#8211;这里假设所有的包都是16个槽位的，如果没那么多槽位的包也可以用。<br />
if GetContainerItemLink(bag,cw)~=nil &#8211;判断这个槽位是否是空的，是空就直接跳到下一个槽位<br />
  then<br />
  if string.find(GetContainerItemInfo(bag,cw),&#8221;Gem&#8221;) &#8211;判断这个槽位里是否是灵魂碎片，Gem为灵魂碎片的关键字<br />
  then<br />
    while string.find(GetContainerItemInfo(4,sc),&#8221;Gem&#8221;) do sc=sc+1 end<br />
        &#8211;这是一个小循环，用于判断最后一个包里原来是否已经有灵魂碎片，有的话就指向包的下一个槽位<br />
    PickupContainerItem(bag,cw)<br />
    PickupContainerItem(4,sc)<br />
    PickupContainerItem(bag,cw)   &#8211;这3句控制灵魂碎片和最后一个包内物品的交换<br />
    sc=sc+1   &#8211;重要，不能忘记这个，每放置好一个碎片后就要把最后一个包的<br />
        槽位指针指向下一个槽位，上面的小循环是无法判断刚刚放好的碎片的。<br />
  end<br />
end<br />
end<br />
end   -循环结束</p>
<p>完了么，当然不行。。。因为宏的限制是255个字。所以要简化我们的宏。</p>
<p>最长的内容估计就是函数了，就先从简化函数开始：</p>
<p>建立以下宏：</p>
<p>/script function P(c,d) PickupContainerItem(c,d) end<br />
/script function I(e,f) if GetContainerItemInfo(e,f) then return string.find(GetContainerItemInfo(e,f),&#8221;Gem&#8221;) else return nil end end</p>
<p>原来的宏就变成了：</p>
<p>/script<br />
bag=0 cw=1 sc=1   <br />
for bag=0,3,1 do<br />
for cw=1,16,1 do<br />
if G(bag,cw)~=nil<br />
  then<br />
  if I(bag,cw)<br />
  then<br />
    while I(4,sc) do sc=sc+1 end<br />
    P(bag,cw)<br />
    P(4,sc)<br />
    P(bag,cw)   <br />
    sc=sc+1   <br />
  end      <br />
end<br />
end<br />
end</p>
<p>多余的变量定义和过长的变量都可以更改：</p>
<p>/script<br />
s=1   <br />
for g=0,3 do<br />
for w=1,16 do<br />
if G(g,w)<br />
  then<br />
  if I(g,w)<br />
  then<br />
    while I(4,s) do s=s+1 end<br />
    P(g,w)<br />
    P(4,s)<br />
    P(g,w)   <br />
    s=s+1   <br />
  end      <br />
end<br />
end<br />
end</p>
<p>现在写的下了吧。呵呵，至于使用物品的宏我虽然已经写好了，但没有测试过，等测试没问题后再放出来把。有兴趣的朋友也可以自己写写。</p>
<p>但要注意一点，使用物品的宏只要找到物品就可以马上跳出循环，所以用Repeat循环做比较合适</p>
<p><!--++ plugin_code qcomic begin--> <!--++ plugin_code qcomic end--></p>
<img src="http://www.qyorg.com/?ak_action=api_record_view&id=114&type=feed" alt="" />]]></content:encoded>
			<wfw:commentRss>http://www.qyorg.com/jsjl/114.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
