<?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>WEB 前端设计者的日志</title>
	<atom:link href="http://www.91face.com/blog/?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.91face.com/blog</link>
	<description>有关flash , javascript 的一些小心得</description>
	<lastBuildDate>Sat, 21 Aug 2010 02:59:34 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>展示几个flash 粒子效果,</title>
		<link>http://www.91face.com/blog/?p=240</link>
		<comments>http://www.91face.com/blog/?p=240#comments</comments>
		<pubDate>Sat, 21 Aug 2010 02:54:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[未分类]]></category>

		<guid isPermaLink="false">http://www.91face.com/blog/?p=240</guid>
		<description><![CDATA[今天看了外国牛人写的as3 粒子效果,效果实在太帅了,忍不住要和大家分享下

<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="500" height="300" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.91face.com/swf/preview1.swf" /><embed type="application/x-shockwave-flash" width="500" height="300" src="http://www.91face.com/swf/preview1.swf"> </embed></object>]]></description>
			<content:encoded><![CDATA[<p>今天看了外国牛人写的as3 粒子效果,效果实在太帅了,忍不住要和大家分享下</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="600" height="300" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.91face.com/swf/preview1.swf" /><embed type="application/x-shockwave-flash" width="600" height="300" src="http://www.91face.com/swf/preview1.swf"></embed></object></p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="600" height="300" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.91face.com/swf/preview2.swf" /><embed type="application/x-shockwave-flash" width="600" height="300" src="http://www.91face.com/swf/preview2.swf"></embed></object></p>
<p>以上粒子效果原理都是使用了bitmapData 的滤镜合成, 只是合成的方法比较复杂。改天研究出来和大家分享下。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.91face.com/blog/?feed=rss2&amp;p=240</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>参加了Adobe的flash平台应用大赛</title>
		<link>http://www.91face.com/blog/?p=236</link>
		<comments>http://www.91face.com/blog/?p=236#comments</comments>
		<pubDate>Sun, 11 Jul 2010 05:17:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[未分类]]></category>

		<guid isPermaLink="false">http://www.91face.com/blog/?p=236</guid>
		<description><![CDATA[Adobe开展了一个使用flash技术,的项目比赛.

本人也参加了,参赛项目是我们团队制作的"图神美画工具",希望大家能投上一票.

地址:

<a href="http://adobec.csdn.net/works/showDetail/243#">http://adobec.csdn.net/works/showDetail/243</a>]]></description>
			<content:encoded><![CDATA[<p>Adobe开展了一个使用flash技术,的项目比赛.</p>
<p>本人也参加了,参赛项目是我们团队制作的&#8221;图神美画工具&#8221;,希望大家能投上一票.</p>
<p>地址:</p>
<p><a href="http://adobec.csdn.net/works/showDetail/243#">http://adobec.csdn.net/works/showDetail/243</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.91face.com/blog/?feed=rss2&amp;p=236</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>采用ByteArray 方式加密、解密多个SWF文件</title>
		<link>http://www.91face.com/blog/?p=233</link>
		<comments>http://www.91face.com/blog/?p=233#comments</comments>
		<pubDate>Sat, 03 Apr 2010 14:12:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[未分类]]></category>

		<guid isPermaLink="false">http://www.91face.com/blog/?p=233</guid>
		<description><![CDATA[前段时间制作了一个用ByteArray方式加密单个SWF文件的例子http://www.91face.com/blog/?p=206，今天再增加批量加密SWF文件的功能，如图：

其中，使用到了Zip第三方类，把多个swf生成一个zip文件并保存。解密多个SWF也是如此。
]]></description>
			<content:encoded><![CDATA[<p>前段时间制作了一个用ByteArray方式加密单个SWF文件的例子<a href="http://www.91face.com/blog/?p=206" target="_blank">http://www.91face.com/blog/?p=206</a>，今天再增加批量加密SWF文件的功能，如图：</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="300" height="150" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.91face.com/swf/EntryptMoreSwf.swf" /><embed type="application/x-shockwave-flash" width="300" height="150" src="http://www.91face.com/swf/EntryptMoreSwf.swf"></embed></object></p>
<p>其中，使用到了Zip第三方类，把多个swf生成一个zip文件并保存。解密多个SWF也是如此。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.91face.com/blog/?feed=rss2&amp;p=233</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>为flash socket 链接专门做的测试环境</title>
		<link>http://www.91face.com/blog/?p=230</link>
		<comments>http://www.91face.com/blog/?p=230#comments</comments>
		<pubDate>Fri, 19 Mar 2010 07:18:37 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[未分类]]></category>

		<guid isPermaLink="false">http://www.91face.com/blog/?p=230</guid>
		<description><![CDATA[为flash socket 链接专门做的测试环境
直接打开：Socket_server.exe 与 socket.exe 就可以进行链接，非常方便。源代码请看main.as
下载地址：http://www.91face.com/blog/wp-content/uploads/2010//flash.rar
]]></description>
			<content:encoded><![CDATA[<h1>为flash socket 链接专门做的测试环境</h1>
<p>直接打开：Socket_server.exe 与 socket.exe 就可以进行链接，非常方便。源代码请看main.as</p>
<p>下载地址：<a href="http://www.91face.com/blog/wp-content/uploads/2010//flash.rar">http://www.91face.com/blog/wp-content/uploads/2010//flash.rar</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.91face.com/blog/?feed=rss2&amp;p=230</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>总理：您辛苦了。&#8221;温家宝:各级领导干部要执行报告个人财产规定&#8221;</title>
		<link>http://www.91face.com/blog/?p=226</link>
		<comments>http://www.91face.com/blog/?p=226#comments</comments>
		<pubDate>Fri, 05 Mar 2010 06:19:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[未分类]]></category>

		<guid isPermaLink="false">http://www.91face.com/blog/?p=226</guid>
		<description><![CDATA[今天在腾讯门户上看了篇文章，讲述两会的公布事项。
http://news.qq.com/a/20100305/002239.htm
其中讲到：
各级领导干部特别是高级干部要坚决执行中央关于报告个人经济和财产，包括收入、住房、投资，以及配偶子女从业等重大事项的规定，并自觉接受纪检部门的监督。【温家宝政府工作报告全文】
从这次两会可以看出，国家是专门出台了政策对于反腐败工作。看到这文章时给我感觉是很惊讶，众所周知地方政府腐败而且没有人管理，看看地方政府的皇宫写字楼就知道。虽然以前朱总理也做过大量的工作进行反腐败，之后就没有连任了，可见反腐败的难度。
看来此次总理是为人民请命了，说声：总理，您辛苦了。
]]></description>
			<content:encoded><![CDATA[<p>今天在腾讯门户上看了篇文章，讲述两会的公布事项。<br />
<a href="http://news.qq.com/a/20100305/002239.htm">http://news.qq.com/a/20100305/002239.htm</a></p>
<p>其中讲到：</p>
<p>各级领导干部特别是高级干部要坚决执行中央关于报告个人经济和财产，包括收入、住房、投资，以及配偶子女从业等重大事项的规定，并自觉接受纪检部门的监督。【<a style="color: #333333; text-decoration: none;" href="http://news.qq.com/a/20100305/002283.htm" target="_blank">温家宝政府工作报告全文</a>】</p>
<p>从这次两会可以看出，国家是专门出台了政策对于反腐败工作。看到这文章时给我感觉是很惊讶，众所周知地方政府腐败而且没有人管理，看看地方政府的皇宫写字楼就知道。虽然以前朱总理也做过大量的工作进行反腐败，之后就没有连任了，可见反腐败的难度。</p>
<p><strong>看来此次总理是为人民请命了，说声：总理，您辛苦了。</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.91face.com/blog/?feed=rss2&amp;p=226</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>新做的游戏地图，能很好的处理内存涨，cpu高的问题</title>
		<link>http://www.91face.com/blog/?p=216</link>
		<comments>http://www.91face.com/blog/?p=216#comments</comments>
		<pubDate>Thu, 04 Mar 2010 10:47:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[未分类]]></category>

		<guid isPermaLink="false">http://www.91face.com/blog/?p=216</guid>
		<description><![CDATA[以前的游戏项目《三国无敌》，地图这一模块处理得不是很好，会引起内存高，不够平滑等问题。现在在新的项目中使用了新的处理方法，并把已经加载过的图片保存在缓存中，下次加载时无需要重要加。更好的图片组移除功能，与移除后内存清除的问题。请看flash:]]></description>
			<content:encoded><![CDATA[<p>以前的游戏项目《三国无敌》，地图这一模块处理得不是很好，会引起内存高，不够平滑等问题。现在在新的项目中使用了新的处理方法，并把已经加载过的图片保存在缓存中，下次加载时无需要重要加。更好的图片组移除功能，与移除后内存清除的问题。请看flash:(<span style="color: #ff0000;"><strong>点击并拖动</strong></span>)</p>
<p><object style="width: 1000px; height: 610px;" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="1000" height="610" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.91face.com/swf/map/test.swf" /><embed style="width: 1000px; height: 610px;" type="application/x-shockwave-flash" width="1000" height="610" src="http://www.91face.com/swf/map/test.swf"></embed></object></p>
<p>鉴于公司项目的原因，不方便公布源代码，请见谅。不过原理还是一样的，有技术交流问题请联系本人邮箱：<a href="xukeny@gmail.com">xukeny@gmail.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.91face.com/blog/?feed=rss2&amp;p=216</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>swf 加密：采用byteArray 方式，增加字符串加密，可加密大文件swf</title>
		<link>http://www.91face.com/blog/?p=206</link>
		<comments>http://www.91face.com/blog/?p=206#comments</comments>
		<pubDate>Tue, 02 Mar 2010 13:46:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[flash]]></category>
		<category><![CDATA[byteArray]]></category>
		<category><![CDATA[swf]]></category>
		<category><![CDATA[加密]]></category>

		<guid isPermaLink="false">http://www.91face.com/blog/?p=206</guid>
		<description><![CDATA[什么都不说：先把工具传上来先。

解密的fla:http://91face.com/swf/loader.fla
使用方法：1.把cba.swf用“abcdef&#8221;密文加密，生成abc.swf。2.打开loader.fla（与加密后的abc.swf目录一致），就可以解密，并看到正常的swf文件了。
今天需要用到swf加密，其实我个人来说不是很喜欢加密，flash的精彩源于社区高手的贡献，很多珍贵的代码都可以免费使用，我现做的项目有很多是采用第三方的类库。今天既然项目需要加密的话就加吧，于是试用了好几种现在流行的加密方法：
第一种是使用&#8221;swf encrypt&#8221;、或者doSWF软件加密，个人认为swf encrypt 的加密不太好，原因不是它算法不够强或者什么的，而是闪客精灵等破解软件会专门针对它的加密算法进行破解。这会导致您加密不久的swf又遭人破了，doSwf是国人写的，还真不错，我试了下加密得很好，连movieClip都看不到。还真想了解下doSwf的加密原理(^.^)，现在doSwf是要收费的一年200元，其实钱不是问题(不是我吹牛，至少对于公司来说是这样)，钱能解决的问题都不是问题。但是&#8230;..(来了:)! ，dowSwf加密大文件的swf有问题，我用我们公司的游戏项目,一个1M左右的swf，加密会出错。所以这种方法对于现有的项目不可行。
第二种方法是采用byteArray二进制加密，此种方法不会使swf变大，只是在原有的字节流中做混淆，对闪客精灵等软件可以起到很好的防破解作用。网上又有源码可以很好地做研究。网址：http://bbs.blueidea.com/thread-2900310-1-97.html 。但是此方法有一个弊端，就是需要一个解密的swf(下面会说到)，解密中的密文还是会暴露。
衡量了两种方法后准备用第二种，因为简单又可以达到效果。使用后觉得写此加密方法的作者应该是在flash player9是写的，采用的还是用php来生成加密后的swf文件，这样使用起来非常的不便，因为还要布置php的运行环境。因为flash10的：FileReference类可以本地获取与保存二进制数据了。所以决定对其进行改进。
说得此，我先分析下byteArray的加密原理：
byteArray的加密原理是，先用：URLLoader把swf文件加载进来，得到URLLoader的data属性(byteArray类型)，然后把这个byteArray数组进行分解，得到一个8位的字节流。然后对这个字节流进行位移（也就是加密的数字，文章中用的是+13），最后得到一个新的字节流数组，进行保存。
解密的方法也是如此：先把文件导入进来，得到byteArray，分解成8位的字节流，（解密方法就是对字节流进行反位移，也就是加密是+13，解密就是-13），这样生成新的字节流数组就是可以使用的swf文件了。说到此我不得不佩服原文作者对byteArray机制的理解，不知是否是自己对加密了解甚少，我就是觉得能这样加密就是强(o_o)!（肯定有人笑我了，哈哈）。
这样加密也暴露了只能采用数字加密的问题，后来我又发现一个比较大的问题，就是：加密最核心的原理是对字节流（8位）的加密，因为是8位的，范围只能是：0~255之间，那么你采用超过255的数字加密也是会取余成255的，不信你用256这个数字加密看看，得到的是什么？竟然是加密后的swf，和原来的swf是一致的，原因就是256会变成0，你位移+0，那当然是等于没有变啦。因为这种加密方式生成的加密文件只能有256种，那么我麻烦点在0~255间一个个地试就能得到解密的swf。
为此我改进了加密算法，使用字符串作为密文。把字符串转为一个ASCII数组(如&#8221;abc&#8221;,对应的ASCII数组为97,98,99),然后与文件的字节流数组进行循环加密。如一个1K的swf，那么它有1024个字节流,第一个字节流与97进行位移，第二个与98位移，第三个与99,第四个又循环与97加。这样生成的加密文件就无穷多了。解密的方法也只有拿到密文才能进行解密。
下面公布加解密方法：
//加密函数
private function compress(byte:ByteArray):ByteArray{
var key:String = password.text;        //得到密文
var flag:int = 0;
var newByte:ByteArray = new ByteArray();
/* */
for(var i:int = 0; i&#60;byte.length ; i++ ,flag++){
if(flag &#62;= key.length){
flag = 0;
}
newByte.writeByte(byte[i] + key.charCodeAt(flag));
//newByte.writeByte(byte[i] + 256);
}
//输出
fileByteArray = newByte;
saveBtn.visible = true;
return newByte;
}
//解密函数
private function uncompress(byte:ByteArray):ByteArray{
var key:String = password.text;        //得到密文
var flag:int = 0;
var newByte:ByteArray = new [...]]]></description>
			<content:encoded><![CDATA[<p><span>什么都不说：先把工具传上来先。</span></p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="300" height="150" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="src" value="http://www.91face.com/swf/entryptSwf.swf" /><embed type="application/x-shockwave-flash" width="300" height="150" src="http://www.91face.com/swf/entryptSwf.swf"></embed></object></p>
<p>解密的fla:<a href="http://91face.com/swf/loader.fla">http://91face.com/swf/loader.fla</a></p>
<p>使用方法：1.把cba.swf用“abcdef&#8221;密文加密，生成abc.swf。2.打开loader.fla（与加密后的abc.swf目录一致），就可以解密，并看到正常的swf文件了。</p>
<p><span>今天需要用到swf加密，其实我个人来说不是很喜欢加密，flash的精彩源于社区高手的贡献，很多珍贵的代码都可以免费使用，我现做的项目有很多是采用第三方的类库。今天既然项目需要加密的话就加吧，于是试用了好几种现在流行的加密方法：<br />
第一种是使用&#8221;swf encrypt&#8221;、或者doSWF软件加密，个人认为swf encrypt 的加密不太好，原因不是它算法不够强或者什么的，而是闪客精灵等破解软件会专门针对它的加密算法进行破解。这会导致您加密不久的swf又遭人破了，doSwf是国人写的，还真不错，我试了下加密得很好，连movieClip都看不到。还真想了解下doSwf的加密原理(^.^)，现在doSwf是要收费的一年200元，其实钱不是问题(不是我吹牛，至少对于公司来说是这样)，钱能解决的问题都不是问题。但是&#8230;..(来了:)! ，dowSwf加密大文件的swf有问题，我用我们公司的游戏项目,一个1M左右的swf，加密会出错。所以这种方法对于现有的项目不可行。<br />
第二种方法是采用byteArray二进制加密，此种方法不会使swf变大，只是在原有的字节流中做混淆，对闪客精灵等软件可以起到很好的防破解作用。网上又有源码可以很好地做研究。网址：<a href="http://www.91face.com/swf/entryptSwf.mxml">http://bbs.blueidea.com/thread-2900310-1-97.html </a>。但是此方法有一个弊端，就是需要一个解密的swf(下面会说到)，解密中的密文还是会暴露。</span></p>
<p><span>衡量了两种方法后准备用第二种，因为简单又可以达到效果。使用后觉得写此加密方法的作者应该是在flash player9是写的，采用的还是用php来生成加密后的swf文件，这样使用起来非常的不便，因为还要布置php的运行环境。因为flash10的：FileReference类可以本地获取与保存二进制数据了。所以决定对其进行改进。</span></p>
<p><span>说得此，我先分析下byteArray的加密原理：<br />
byteArray的加密原理是，先用：<code id="code0">URLLoader把swf文件加载进来，得到</code><code id="code0">URLLoader的data属性(byteArray类型)，然后把这个byteArray数组进行分解，得到一个8位的字节流。然后对这个字节流进行位移（也就是加密的数字，文章中用的是+13），最后得到一个新的字节流数组，进行保存。</code></span></p>
<p><span>解密的方法也是如此：先把文件导入进来，得到byteArray，分解成8位的字节流，（解密方法就是对字节流进行反位移，也就是加密是+13，解密就是-13），这样生成新的字节流数组就是可以使用的swf文件了。说到此我不得不佩服原文作者对byteArray机制的理解，不知是否是自己对加密了解甚少，我就是觉得能这样加密就是强(o_o)!（肯定有人笑我了，哈哈）。</span></p>
<p><span>这样加密也暴露了只能采用数字加密的问题，后来我又发现一个比较大的问题，就是：加密最核心的原理是对字节流（8位）的加密，因为是8位的，范围只能是：0~255之间，那么你采用超过255的数字加密也是会取余成255的，不信你用256这个数字加密看看，得到的是什么？竟然是加密后的swf，和原来的swf是一致的，原因就是256会变成0，你位移+0，那当然是等于没有变啦。因为这种加密方式生成的加密文件只能有256种，那么我麻烦点在0~255间一个个地试就能得到解密的swf。</span></p>
<p><span>为此我改进了加密算法，使用字符串作为密文。把字符串转为一个ASCII数组(如&#8221;abc&#8221;,对应的ASCII数组为97,98,99),然后与文件的字节流数组进行循环加密。如一个1K的swf，那么它有1024个字节流,第一个字节流与97进行位移，第二个与98位移，第三个与99,第四个又循环与97加。这样生成的加密文件就无穷多了。解密的方法也只有拿到密文才能进行解密。</span></p>
<p><span>下面公布加解密方法：</span></p>
<p style="padding-left: 30px;"><span>//加密函数<br />
private function compress(byte:ByteArray):ByteArray{<br />
var key:String = password.text;        //得到密文</span></p>
<p style="padding-left: 30px;"><span>var flag:int = 0;<br />
var newByte:ByteArray = new ByteArray();<br />
/* */<br />
for(var i:int = 0; i&lt;byte.length ; i++ ,flag++){<br />
if(flag &gt;= key.length){<br />
flag = 0;<br />
}<br />
newByte.writeByte(byte[i] + key.charCodeAt(flag));<br />
//newByte.writeByte(byte[i] + 256);<br />
}<br />
//输出<br />
fileByteArray = newByte;<br />
saveBtn.visible = true;<br />
return newByte;<br />
}</span></p>
<p style="padding-left: 30px;"><span>//解密函数<br />
private function uncompress(byte:ByteArray):ByteArray{<br />
var key:String = password.text;        //得到密文<br />
var flag:int = 0;</span></p>
<p style="padding-left: 30px;"><span>var newByte:ByteArray = new ByteArray();<br />
/* */<br />
for(var i:int = 0; i&lt;byte.length ; i++ ,flag++){<br />
if(flag &gt;= key.length){<br />
flag = 0;<br />
}<br />
newByte.writeByte(byte[i] &#8211; key.charCodeAt(flag));<br />
//newByte.writeByte(byte[i] + 256);<br />
}<br />
//trace(newByte);<br />
fileByteArray = newByte;<br />
saveBtn.visible = true;<br />
return newByte;<br />
}</span></p>
<p style="padding-left: 30px;"><span>源文件(flex)：<a href="http://www.91face.com/swf/entryptSwf.mxml">http://www.91face.com/swf/entryptSwf.mxml</a></span></p>
<p><span>最后问题是解密的swf，还是会暴露代码。如a.swf把encrypt.swf加载进来后，虽然这个encrypt.swf看不到了，但a.swf还是未加密的，好在此时a.swf会比较小，可以用doSwf加密。doSwf未授权版本也可以绕过，删除其水印与删除其定时弹出的链接。为尊重作者劳动成果，故不公布代码。大家还是去doSwf的网站上购买吧，真希望有一天doSwf也能公布其加密方法，到那时swf加密又会上一个新的台阶了！</span></p>
<p><span>最后说句，本人因为平时极少写博客，文字组织能力太差，错别字太多。（555）晚了，回家吧！！！</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.91face.com/blog/?feed=rss2&amp;p=206</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>我的BrowserManager为什么用不了？</title>
		<link>http://www.91face.com/blog/?p=203</link>
		<comments>http://www.91face.com/blog/?p=203#comments</comments>
		<pubDate>Sat, 26 Dec 2009 09:04:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[未分类]]></category>

		<guid isPermaLink="false">http://www.91face.com/blog/?p=203</guid>
		<description><![CDATA[如题：我的BrowserManager为什么用不了？

今天就遇到了这样的一个问题，用BrowserManager时，在测试环境下，可以很正常的得到BrowserManager.url信息，但放发布放在另一个.php页面中就怎么也使用不了。

后来看了生成的html页面有这样一句话：<script src="history/history.js" language="javascript"></script>，把它复制到要发布的.php页面中，就OK了。

原来flash是通过js得到浏览器的URL地址的，没有这个JS文件就当然得不到啦。！！]]></description>
			<content:encoded><![CDATA[<p>如题：我的BrowserManager为什么用不了？</p>
<p>今天就遇到了这样的一个问题，用BrowserManager时，在测试环境下，可以很正常的得到BrowserManager.url信息，但放发布放在另一个.php页面中就怎么也使用不了。</p>
<p>后来看了生成的html页面有这样一句话：&lt;script src=&#8221;history/history.js&#8221; language=&#8221;javascript&#8221;&gt;&lt;/script&gt;，把它复制到要发布的.php页面中，就OK了。</p>
<p>原来flash是通过js得到浏览器的URL地址的，没有这个JS文件就当然得不到啦。！！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.91face.com/blog/?feed=rss2&amp;p=203</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>原来升级 WordPress 这么的方便</title>
		<link>http://www.91face.com/blog/?p=201</link>
		<comments>http://www.91face.com/blog/?p=201#comments</comments>
		<pubDate>Thu, 05 Nov 2009 17:17:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[未分类]]></category>

		<guid isPermaLink="false">http://www.91face.com/blog/?p=201</guid>
		<description><![CDATA[今天看到wordpress提示需要升级，于是选择了自动升级按钮，原来一切用PHP都可以做到自动升级。
但我还是不明白为什么PHP能做到自动升级功能。看到根目录下的PHP文件又确实被修改了，日期为今天11-06。
何解？
]]></description>
			<content:encoded><![CDATA[<p>今天看到wordpress提示需要升级，于是选择了自动升级按钮，原来一切用PHP都可以做到自动升级。</p>
<p>但我还是不明白为什么PHP能做到自动升级功能。看到根目录下的PHP文件又确实被修改了，日期为今天11-06。</p>
<p>何解？</p>
]]></content:encoded>
			<wfw:commentRss>http://www.91face.com/blog/?feed=rss2&amp;p=201</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>[转]看了一篇翻译得不错的文章,讲述在avm2 上运行c/c++程序的,现在文章献上</title>
		<link>http://www.91face.com/blog/?p=197</link>
		<comments>http://www.91face.com/blog/?p=197#comments</comments>
		<pubDate>Thu, 13 Aug 2009 14:22:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[未分类]]></category>

		<guid isPermaLink="false">http://www.91face.com/blog/?p=197</guid>
		<description><![CDATA[看了一篇翻译得不错的文章,讲述在avm2 上运行c/c++程序的,现在文章献上,大致意思是在flash player上通过调用LLVM虚拟机,实现c/c++级别的效率.有了这样速度,做3D游戏不再是梦想.
自从2007年中推出了AS3支 持了面向对象的开发方式之后, 可谓动作不断. 去年又将AVM2的核心虚拟机tamarin 捐赠给了ECMA4 , 又将FlexBuild2直接升级到FlexBuild3, 这不,在08年末,又蹦出一个 Adobe Alchemy, 这在战略上具有极为重要意义. 而FLASH 从一个简单的动画客 户端,一跃升级成一个未来富媒体应用程序的平台. 从这一系列战略步骤,不难看出ADOBE想成为WEB乃至桌面开发霸主的野心! 微软你要小心了. 那么你可能要问了, 为什么Alchemy这么重要呢? 作为FLASH实践者, 效率问题是众所周知的. 因为, FLASH中运行的代码是 ACTIONSCRIPT, 它是一个脚本语言.而这个语言是运行在FLASH内部的AVM2虚拟机上的. 所以它的一些功能都需要经过, 语言解释成AVM2虚拟机字节码,然后AVM2运行字节码,最后由本地NATIVE语言,也就是本机2进制程序执行.虽然这解决了平台无关的问题,但是带 来一个副作用,就是比较慢,这就是为什么FLASH上一直没有杀手级应用的主要原因. 从本质上来说, 这是一个构架上的问题. 而Alchemy 的出现,从构架上,改进了这个问题,你可以使用C/C++编写核心,快速的算法,让AS3进行调用, 达到加速的目标. 这在过去,你只能使用ADOVE提供给你的内置native 程序. 现在,你可以自己干这件事情了. 既解决了平台无关的问题,又解决了效率的问题,甚至可以利用FLASH本身几十亿现有的客户端的优势,解决了渠道问题.可以这样说, Alchemy 打开了一个前所未有的时代! 让我们看看 Alchemy 到底做什么. 从ADOBE的说明文档上可以看到, Alchemy 是一个 运行在低层的虚拟机 (Low Level Virtual Machine) ,他运行在AVM2之下. 那你又要问了.既然有了一个虚拟AVM2了,为什么还要一个LLVM? 其实, LLVM [...]]]></description>
			<content:encoded><![CDATA[<p>看了一篇翻译得不错的文章,讲述在avm2 上运行c/c++程序的,现在文章献上,大致意思是在flash player上通过调用LLVM虚拟机,实现c/c++级别的效率.有了这样速度,做3D游戏不再是梦想.<br />
自从2007年中推出了<span class="t_tag" onclick="tagshow(event)">AS3</span>支 持了面向对象的开发方式之后, 可谓动作不断. 去年又将AVM2的核心虚拟机tamarin 捐赠给了ECMA4 , 又将FlexBuild2直接升级到FlexBuild3, 这不,在08年末,又蹦出一个 Adobe Alchemy, 这在战略上具有极为重要意义. 而FLASH 从一个简单的<span class="t_tag" onclick="tagshow(event)">动画</span>客 户端,一跃升级成一个未来富媒体应用程序的平台. 从这一系列战略步骤,不难看出ADOBE想成为WEB乃至桌面开发霸主的野心! 微软你要小心了. 那么你可能要问了, 为什么Alchemy这么重要呢? 作为FLASH实践者, 效率问题是众所周知的. 因为, FLASH中运行的代码是 ACTIONSCRIPT, 它是一个脚本语言.而这个语言是运行在FLASH内部的AVM2虚拟机上的. 所以它的一些功能都需要经过, 语言解释成AVM2虚拟机字节码,然后AVM2运行字节码,最后由本地NATIVE语言,也就是本机2进制程序执行.虽然这解决了平台无关的问题,但是带 来一个副作用,就是比较慢,这就是为什么FLASH上一直没有杀手级应用的主要原因. 从本质上来说, 这是一个构架上的问题. 而Alchemy 的出现,从构架上,改进了这个问题,你可以使用C/C++编写核心,快速的算法,让AS3进行<span class="t_tag" onclick="tagshow(event)">调用</span>, 达到加速的目标. 这在过去,你只能使用ADOVE提供给你的内置native 程序. 现在,你可以自己干这件事情了. 既解决了平台无关的问题,又解决了效率的问题,甚至可以利用FLASH本身几十亿现有的客户端的优势,解决了渠道问题.可以这样说, Alchemy 打开了一个前所未有的时代! 让我们看看 Alchemy 到底做什么. 从ADOBE的说明文档上可以看到, Alchemy 是一个 运行在低层的虚拟机 (Low Level Virtual Machine) ,他运行在AVM2之下. 那你又要问了.既然有了一个虚拟AVM2了,为什么还要一个LLVM? 其实, LLVM 将C/C++代码进行编译,并且生成RISC-LIKE指令的字节码, 存储在缓冲区之中, 在FLASH运行开始的时候, 实时翻译成机器相关的本地代码. 需要调用的时候是调用翻译之后的2进制本地代码.以此来提高整体速度.这就是LLVM的关键技术, 而运行时译 (Runtime-Compile) 这种技术有点像 .NET . 而这种LLVM和AVM2的区别是, AVM2实时解释运行脚本代码,LLVM 预编译本地运行.可以这样认为 AVM2 是 JAVA虚拟机, LLVM是 .NET虚拟机.他们在构架上处于不同的层次,满足不同需求对速度的要求. 当生成编译完成后,字节码需要保存在一个缓冲区之内. 由于在框架之内需要和AVM2兼容,所以这个缓冲区,将以 AVM2能识别的BYTEARRAY 形式保存在内存之中. 并且, alchemy自动生成一个 AS3的接口<span class="t_tag" onclick="tagshow(event)">文件</span>,以方便AS3程序进行调用. 值得注意的是, 所有C/C++编译之后的数据,都以 SWC <span class="t_tag" onclick="tagshow(event)">函数</span>库 的形式生成, 用户可以在自己的工程里 IMPORT.经过使用后发现,由 Alchemy 生成的SWC文件是比较大, 比 C/C++源文件大的多.即使一个只有几十来行的纯C 功能,生成SWC后都会有100多KB. 参考ADOBE的文档上说, 编译C/C++的代码,会将C/C++所需要的所有库,比如C标准库统统放到一个SWC里去,并且严格遵循POSIX标准. (可移植操作系统接口) 由于这种机制的存在, 我们甚至可以在C/C++里嵌入线程的支持, 来运行同步或者异步的功能. 从而弥补了FLASH是单线程这一不足! 这将是一件美妙的事情! 而本人认为,由于C/C++代码是公用一个C标准库的,所以只要SWC中的功能越多,那么从空间效率上就越是划算. 并且在目前的宽带之下,多个100来KB问题不是太大. 当然,安全问题,也是alchemy的重头戏, 我们知道, FLASH 对安全问题是有一套非常严格的措施的,比如访问本地资源后,就不能访问远程资源,访问这个域的资源后,就不能访问其他域的资源.如果你要访问,就要在另外 一个域上安装一个沙箱(SecurityBox)文件,才能顺利访问. 而alchemy将C/C++带入FLASH之中,而C/C++ 是否能坏了这个规矩,让应用程序出轨呢? 答案当然是否定的,一旦这个程序被调用之后,其C/C++程序被严格的运行在一LLVM上,LLVM作为一个代理机构,向上,提供了对C/C++的平台支 持,比如独立的内存空间,独立的堆栈空间,独立的线程管理机构,等等. 向下将2进制程序输送到 本机CPU进行执行. 所以安全问题上是非常到位的, 所以对C/C++来说,只要LLVM环境没有提供的,它将永远访问不到. Adobe已经对 alchemy 进行了比较深度的<span class="t_tag" onclick="tagshow(event)">优化</span>,并且我相信以后将继续下去.就从用户来说,由于有了alchemy 的出现,一些对速度要求较高的算法,都可以使用C/C++来代替. 由于接口上都是AS3的接口,所以移植现有的程序将会非常轻松.比如目前<span class="t_tag" onclick="tagshow(event)">游戏</span>开发中广泛使用的那个BitmapData.CopyPixel 如果用C纯代码进行改写,那么速度将提高几十倍之多. 总结. Alchemy 的出现,开启了一个全新的时代, 未来你将会发现网业上不再是简单画面,而是充满动态的不同的<span class="t_tag" onclick="tagshow(event)">效果</span>,给于用户全新的体验.随着LLVM提供的功能加多,比如将显卡硬件的功能作为一个抽象接口提供给C/C++调用,那么将来UNREAL3出现在<span class="t_tag" onclick="tagshow(event)">网页</span>上,你千万不要惊奇.甚至WOW出现在网页上,你也不要惊奇. 因为新时代的门已经打开!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.91face.com/blog/?feed=rss2&amp;p=197</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
