<?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"
	>

<channel>
	<title>技术·人生</title>
	<atom:link href="http://www.4nothing.net/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.4nothing.net/blog</link>
	<description>技术服务生活</description>
	<pubDate>Thu, 27 Nov 2008 08:40:06 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.3</generator>
	<language>en</language>
			<item>
		<title>有线通造成的跨域访问和预加载失败</title>
		<link>http://www.4nothing.net/blog/2008/11/27/unexpectable-cross-domain-and-invalid-preload/</link>
		<comments>http://www.4nothing.net/blog/2008/11/27/unexpectable-cross-domain-and-invalid-preload/#comments</comments>
		<pubDate>Thu, 27 Nov 2008 08:36:54 +0000</pubDate>
		<dc:creator>RainFly</dc:creator>
		
		<category><![CDATA[Flash相关]]></category>

		<guid isPermaLink="false">http://www.4nothing.net/blog/?p=363</guid>
		<description><![CDATA[我们都知道，当Flash加载同域下的图片或文件时，是不需要跨域策略文件时，当访问其他域的文件才需要，只要其它域的跨域策略允许访问的话，也是可以加载的。但是不幸的是，有线通用户却... ]]></description>
			<content:encoded><![CDATA[<p>我们都知道，当Flash加载同域下的图片或文件时，是不需要跨域策略文件时，当访问其他域的文件才需要，只要其它域的跨域策略允许访问的话，也是可以加载的。但是不幸的是，有线通用户却依然存在问题。原因在于有线通会将对图片、MP3等文件的访问进行转向，会通过专用服务器来访问。比如本来需要加载http://somedomain.com/some.jpg，有线通实际上的访问是http://211.*.*.*:port/xxxxx/xxxx?somedomain.com/some.jpg。这样本来不存在跨域问题的，却由于有线通的这一个中间的转向出现了跨域问题。<br />
同样，由于这个中间的转向，导致预加载无效。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.4nothing.net/blog/2008/11/27/unexpectable-cross-domain-and-invalid-preload/feed/</wfw:commentRss>
		</item>
		<item>
		<title>[as3]圆形的进度条</title>
		<link>http://www.4nothing.net/blog/2008/11/13/circle-progress-bar/</link>
		<comments>http://www.4nothing.net/blog/2008/11/13/circle-progress-bar/#comments</comments>
		<pubDate>Thu, 13 Nov 2008 05:08:54 +0000</pubDate>
		<dc:creator>RainFly</dc:creator>
		
		<category><![CDATA[Flash AS3]]></category>

		<guid isPermaLink="false">http://www.4nothing.net/blog/?p=359</guid>
		<description><![CDATA[
AS Code 

package&#160;
{
	import&#160;flash.display.Sprite;
	import&#160;flash.events.Event;
	import&#160;flash.display.Shape;
	import&#160;flash.text.TextField;
	[SWF(width&#160;=&#160;550,&#160;height&#160;=&#160;440,&#160;backgroundColor&#160;=&#160... ]]></description>
			<content:encoded><![CDATA[<p><embed src='http://www.4nothing.net/blog/wp-content/uploads/2008/11/learnas3.swf' width="550" height="400" background="#ffffff" /></p>
<p><span class="as_header">AS Code</span> <span><br />
<input type="button" value="复制代码" class="inputButton" onclick="copyCode('myCode1');" /></span>
<pre class="fms_actionscript" id="myCode1">package&nbsp;
<span class="fms_signal">{</span>
	<span class="fms_keyword">import</span>&nbsp;flash.display.Sprite;
	<span class="fms_keyword">import</span>&nbsp;flash.events.Event;
	<span class="fms_keyword">import</span>&nbsp;flash.display.Shape;
	<span class="fms_keyword">import</span>&nbsp;flash.<span class="fms_keyword">text</span>.<span class="fms_class">TextField</span>;
	[SWF<span class="fms_signal">(</span><span class="fms_keyword">width</span>&nbsp;<span class="fms_signal">=</span>&nbsp;550,&nbsp;<span class="fms_keyword">height</span>&nbsp;<span class="fms_signal">=</span>&nbsp;440,&nbsp;<span class="fms_keyword">backgroundColor</span>&nbsp;<span class="fms_signal">=</span>&nbsp;0xffffff,&nbsp;frameRate&nbsp;<span class="fms_signal">=</span>&nbsp;24<span class="fms_signal">)</span>]
	<span class="fms_comment">/**
	&nbsp;*&nbsp;...
	&nbsp;*&nbsp;@author&nbsp;spark.fandlr@gmail.com
	&nbsp;*/</span>
	public&nbsp;<span class="fms_keyword">class</span>&nbsp;Main&nbsp;extends&nbsp;Sprite&nbsp;
	<span class="fms_signal">{</span>
		private&nbsp;<span class="fms_keyword">var</span>&nbsp;_shape<span class="fms_signal">:</span>Shape;
		private&nbsp;<span class="fms_keyword">var</span>&nbsp;an<span class="fms_signal">:</span><span class="fms_class">Number</span>&nbsp;<span class="fms_signal">=</span>&nbsp;0;
		private&nbsp;const&nbsp;r<span class="fms_signal">:</span><span class="fms_class">Number</span>&nbsp;<span class="fms_signal">=</span>&nbsp;50;
		private&nbsp;<span class="fms_keyword">var</span>&nbsp;_txt<span class="fms_signal">:</span><span class="fms_class">TextField</span>;
		public&nbsp;<span class="fms_keyword">function</span>&nbsp;Main<span class="fms_signal">(</span><span class="fms_signal">)</span><span class="fms_signal">:</span><span class="fms_keyword">void</span>&nbsp;
		<span class="fms_signal">{</span>
			<span class="fms_keyword">if</span>&nbsp;<span class="fms_signal">(</span>stage<span class="fms_signal">)</span>&nbsp;init<span class="fms_signal">(</span><span class="fms_signal">)</span>;
			<span class="fms_keyword">else</span>&nbsp;<span class="fms_keyword">addEventListener</span><span class="fms_signal">(</span>Event.ADDED_TO_STAGE,&nbsp;init<span class="fms_signal">)</span>;
		<span class="fms_signal">}</span>

		private&nbsp;<span class="fms_keyword">function</span>&nbsp;init<span class="fms_signal">(</span>e<span class="fms_signal">:</span>Event&nbsp;<span class="fms_signal">=</span>&nbsp;<span class="fms_keyword">null</span><span class="fms_signal">)</span><span class="fms_signal">:</span><span class="fms_keyword">void</span>&nbsp;
		<span class="fms_signal">{</span>
			removeEventListener<span class="fms_signal">(</span>Event.ADDED_TO_STAGE,&nbsp;init<span class="fms_signal">)</span>;
			<span class="fms_comment">//&nbsp;entry&nbsp;point</span>
			_shape&nbsp;<span class="fms_signal">=</span>&nbsp;<span class="fms_keyword">new</span>&nbsp;Shape;
			_shape.x&nbsp;<span class="fms_signal">=</span>&nbsp;stage.stageWidth&nbsp;/&nbsp;2;
			_shape.y&nbsp;<span class="fms_signal">=</span>&nbsp;stage.stageHeight&nbsp;/&nbsp;2;
			_txt&nbsp;<span class="fms_signal">=</span>&nbsp;<span class="fms_keyword">new</span>&nbsp;<span class="fms_class">TextField</span>;
			_txt.x&nbsp;<span class="fms_signal">=</span>&nbsp;_shape.x;
			_txt.y&nbsp;<span class="fms_signal">=</span>&nbsp;_shape.y;

			addChild<span class="fms_signal">(</span>_shape<span class="fms_signal">)</span>;
			addChild<span class="fms_signal">(</span>_txt<span class="fms_signal">)</span>;
			<span class="fms_keyword">addEventListener</span><span class="fms_signal">(</span>Event.ENTER_FRAME,&nbsp;fdraw<span class="fms_signal">)</span>;
		<span class="fms_signal">}</span>
		private&nbsp;<span class="fms_keyword">function</span>&nbsp;fdraw<span class="fms_signal">(</span>event<span class="fms_signal">:</span>Event<span class="fms_signal">)</span><span class="fms_signal">:</span><span class="fms_keyword">void</span>
		<span class="fms_signal">{</span>
			an&nbsp;<span class="fms_signal">+</span><span class="fms_signal">+</span>;

			<span class="fms_keyword">if</span>&nbsp;<span class="fms_signal">(</span>an&nbsp;&gt;<span class="fms_signal">=</span>&nbsp;360<span class="fms_signal">)</span>
			<span class="fms_signal">{</span>

				removeEventListener<span class="fms_signal">(</span>Event.ENTER_FRAME,&nbsp;fdraw<span class="fms_signal">)</span>;
			<span class="fms_signal">}</span>
			<span class="fms_keyword">else</span>&nbsp;<span class="fms_signal">{</span>
				drawShan<span class="fms_signal">(</span>an<span class="fms_signal">)</span>;
			<span class="fms_signal">}</span>
		<span class="fms_signal">}</span>
		private&nbsp;<span class="fms_keyword">function</span>&nbsp;drawShan<span class="fms_signal">(</span><span class="fms_keyword">angle</span><span class="fms_signal">:</span><span class="fms_class">Number</span><span class="fms_signal">)</span><span class="fms_signal">:</span><span class="fms_keyword">void</span>
		<span class="fms_signal">{</span>
			_shape.graphics.<span class="fms_keyword">clear</span><span class="fms_signal">(</span><span class="fms_signal">)</span>;
			_shape.graphics.<span class="fms_keyword">lineStyle</span><span class="fms_signal">(</span>2,&nbsp;0x0000ff<span class="fms_signal">)</span>;
			_shape.graphics.<span class="fms_keyword">beginFill</span><span class="fms_signal">(</span>0xff0000,&nbsp;0.5<span class="fms_signal">)</span>;
			<span class="fms_keyword">var</span>&nbsp;p<span class="fms_signal">:</span><span class="fms_class">Number</span>&nbsp;<span class="fms_signal">=</span>&nbsp;<span class="fms_keyword">angle</span>&nbsp;/&nbsp;180&nbsp;*&nbsp;<span class="fms_class">Math</span>.<span class="fms_keyword">PI</span>;
			_shape.graphics.<span class="fms_keyword">moveTo</span><span class="fms_signal">(</span>0,&nbsp;0<span class="fms_signal">)</span>;
			_shape.graphics.<span class="fms_keyword">lineTo</span><span class="fms_signal">(</span>r&nbsp;*&nbsp;<span class="fms_class">Math</span>.<span class="fms_keyword">cos</span><span class="fms_signal">(</span>p<span class="fms_signal">)</span>,&nbsp;-r&nbsp;*&nbsp;<span class="fms_class">Math</span>.<span class="fms_keyword">sin</span><span class="fms_signal">(</span>p<span class="fms_signal">)</span><span class="fms_signal">)</span>;
			<span class="fms_keyword">var</span>&nbsp;part<span class="fms_signal">:</span><span class="fms_keyword">int</span>&nbsp;<span class="fms_signal">=</span>&nbsp;<span class="fms_class">Math</span>.<span class="fms_keyword">floor</span><span class="fms_signal">(</span><span class="fms_keyword">angle</span>&nbsp;/&nbsp;45<span class="fms_signal">)</span>;
			<span class="fms_keyword">var</span>&nbsp;remain<span class="fms_signal">:</span><span class="fms_class">Number</span>&nbsp;<span class="fms_signal">=</span>&nbsp;<span class="fms_keyword">angle</span>&nbsp;-&nbsp;part&nbsp;*&nbsp;45;
			<span class="fms_keyword">var</span>&nbsp;hp<span class="fms_signal">:</span><span class="fms_class">Number</span>&nbsp;<span class="fms_signal">=</span>&nbsp;remain&nbsp;/&nbsp;180&nbsp;*&nbsp;<span class="fms_class">Math</span>.<span class="fms_keyword">PI</span>&nbsp;/&nbsp;2;
			<span class="fms_keyword">var</span>&nbsp;hr<span class="fms_signal">:</span><span class="fms_class">Number</span>&nbsp;<span class="fms_signal">=</span>&nbsp;<span class="fms_class">Math</span>.<span class="fms_keyword">abs</span><span class="fms_signal">(</span>r&nbsp;/&nbsp;<span class="fms_class">Math</span>.<span class="fms_keyword">cos</span><span class="fms_signal">(</span>hp<span class="fms_signal">)</span><span class="fms_signal">)</span>;
			_shape.graphics.<span class="fms_keyword">curveTo</span><span class="fms_signal">(</span>hr&nbsp;*&nbsp;<span class="fms_class">Math</span>.<span class="fms_keyword">cos</span><span class="fms_signal">(</span>p&nbsp;-&nbsp;hp<span class="fms_signal">)</span>,&nbsp;-&nbsp;hr&nbsp;*&nbsp;<span class="fms_class">Math</span>.<span class="fms_keyword">sin</span><span class="fms_signal">(</span>p&nbsp;-&nbsp;hp<span class="fms_signal">)</span>,&nbsp;r&nbsp;*&nbsp;<span class="fms_class">Math</span>.<span class="fms_keyword">cos</span><span class="fms_signal">(</span>p&nbsp;-&nbsp;hp&nbsp;*&nbsp;2<span class="fms_signal">)</span>,&nbsp;-&nbsp;r&nbsp;*&nbsp;<span class="fms_class">Math</span>.<span class="fms_keyword">sin</span><span class="fms_signal">(</span>p&nbsp;-&nbsp;hp&nbsp;*&nbsp;2<span class="fms_signal">)</span><span class="fms_signal">)</span>;
			<span class="fms_keyword">switch</span><span class="fms_signal">(</span>part<span class="fms_signal">)</span>
			<span class="fms_signal">{</span>
				<span class="fms_keyword">case</span>&nbsp;7<span class="fms_signal">:</span>

				_shape.graphics.<span class="fms_keyword">curveTo</span><span class="fms_signal">(</span><span class="fms_class">Math</span>.<span class="fms_keyword">tan</span><span class="fms_signal">(</span><span class="fms_class">Math</span>.<span class="fms_keyword">PI</span>&nbsp;/&nbsp;8<span class="fms_signal">)</span>&nbsp;*&nbsp;r,&nbsp;r&nbsp;,&nbsp;0,&nbsp;r&nbsp;<span class="fms_signal">)</span>;
				<span class="fms_keyword">case</span>&nbsp;6<span class="fms_signal">:</span>

				_shape.graphics.<span class="fms_keyword">curveTo</span><span class="fms_signal">(</span>-<span class="fms_class">Math</span>.<span class="fms_keyword">tan</span><span class="fms_signal">(</span><span class="fms_class">Math</span>.<span class="fms_keyword">PI</span>/8<span class="fms_signal">)</span>*r,&nbsp;r,&nbsp;-<span class="fms_class">Math</span>.<span class="fms_keyword">sin</span><span class="fms_signal">(</span><span class="fms_class">Math</span>.<span class="fms_keyword">PI</span>/4<span class="fms_signal">)</span>&nbsp;*&nbsp;r&nbsp;,&nbsp;<span class="fms_class">Math</span>.<span class="fms_keyword">sin</span><span class="fms_signal">(</span><span class="fms_class">Math</span>.<span class="fms_keyword">PI</span>&nbsp;/&nbsp;4<span class="fms_signal">)</span>&nbsp;*&nbsp;r<span class="fms_signal">)</span>;
				<span class="fms_keyword">case</span>&nbsp;5<span class="fms_signal">:</span>

				_shape.graphics.<span class="fms_keyword">curveTo</span><span class="fms_signal">(</span>-r,&nbsp;<span class="fms_class">Math</span>.<span class="fms_keyword">tan</span><span class="fms_signal">(</span><span class="fms_class">Math</span>.<span class="fms_keyword">PI</span>&nbsp;/&nbsp;8<span class="fms_signal">)</span>&nbsp;*&nbsp;r&nbsp;,&nbsp;-r&nbsp;,&nbsp;0&nbsp;<span class="fms_signal">)</span>;
				<span class="fms_keyword">case</span>&nbsp;4<span class="fms_signal">:</span>

				_shape.graphics.<span class="fms_keyword">curveTo</span><span class="fms_signal">(</span>&nbsp;-r&nbsp;,&nbsp;-<span class="fms_class">Math</span>.<span class="fms_keyword">tan</span><span class="fms_signal">(</span><span class="fms_class">Math</span>.<span class="fms_keyword">PI</span>/8<span class="fms_signal">)</span>*r,&nbsp;-<span class="fms_class">Math</span>.<span class="fms_keyword">sin</span><span class="fms_signal">(</span><span class="fms_class">Math</span>.<span class="fms_keyword">PI</span>/4<span class="fms_signal">)</span>&nbsp;*&nbsp;r&nbsp;,&nbsp;-<span class="fms_class">Math</span>.<span class="fms_keyword">sin</span><span class="fms_signal">(</span><span class="fms_class">Math</span>.<span class="fms_keyword">PI</span>&nbsp;/&nbsp;4<span class="fms_signal">)</span>&nbsp;*&nbsp;r&nbsp;<span class="fms_signal">)</span>;
				<span class="fms_keyword">case</span>&nbsp;3<span class="fms_signal">:</span>

				_shape.graphics.<span class="fms_keyword">curveTo</span><span class="fms_signal">(</span>&nbsp;-<span class="fms_class">Math</span>.<span class="fms_keyword">tan</span><span class="fms_signal">(</span><span class="fms_class">Math</span>.<span class="fms_keyword">PI</span>&nbsp;/&nbsp;8<span class="fms_signal">)</span>&nbsp;*&nbsp;r&nbsp;,&nbsp;-r&nbsp;,&nbsp;0,&nbsp;-r<span class="fms_signal">)</span>;
				<span class="fms_keyword">case</span>&nbsp;2<span class="fms_signal">:</span>

				_shape.graphics.<span class="fms_keyword">curveTo</span><span class="fms_signal">(</span>&nbsp;<span class="fms_class">Math</span>.<span class="fms_keyword">tan</span><span class="fms_signal">(</span><span class="fms_class">Math</span>.<span class="fms_keyword">PI</span>/8<span class="fms_signal">)</span>*r,&nbsp;-r,&nbsp;<span class="fms_class">Math</span>.<span class="fms_keyword">sin</span><span class="fms_signal">(</span><span class="fms_class">Math</span>.<span class="fms_keyword">PI</span>/4<span class="fms_signal">)</span>&nbsp;*&nbsp;r&nbsp;,&nbsp;-<span class="fms_class">Math</span>.<span class="fms_keyword">sin</span><span class="fms_signal">(</span><span class="fms_class">Math</span>.<span class="fms_keyword">PI</span>&nbsp;/&nbsp;4<span class="fms_signal">)</span>&nbsp;*&nbsp;r&nbsp;<span class="fms_signal">)</span>;
				<span class="fms_keyword">case</span>&nbsp;1<span class="fms_signal">:</span>

				_shape.graphics.<span class="fms_keyword">curveTo</span><span class="fms_signal">(</span>r,&nbsp;-<span class="fms_class">Math</span>.<span class="fms_keyword">tan</span><span class="fms_signal">(</span><span class="fms_class">Math</span>.<span class="fms_keyword">PI</span>/8<span class="fms_signal">)</span>*r,r,&nbsp;0&nbsp;<span class="fms_signal">)</span>;
			<span class="fms_signal">}</span>

			_shape.graphics.<span class="fms_keyword">lineTo</span><span class="fms_signal">(</span>0,&nbsp;0<span class="fms_signal">)</span>;
			_shape.graphics.<span class="fms_keyword">endFill</span><span class="fms_signal">(</span><span class="fms_signal">)</span>;
			_txt.<span class="fms_keyword">text</span>&nbsp;<span class="fms_signal">=</span>&nbsp;<span class="fms_keyword">int</span><span class="fms_signal">(</span><span class="fms_keyword">angle</span>&nbsp;/&nbsp;360&nbsp;*&nbsp;100<span class="fms_signal">)</span>.<span class="fms_keyword">toString</span><span class="fms_signal">(</span><span class="fms_signal">)</span>&nbsp;<span class="fms_signal">+</span>&nbsp;<span class="fms_quot">&#34;%&#34;</span>;
		<span class="fms_signal">}</span>

	<span class="fms_signal">}</span>

<span class="fms_signal">}</span></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.4nothing.net/blog/2008/11/13/circle-progress-bar/feed/</wfw:commentRss>
		</item>
		<item>
		<title>让SWF既能访问网络又能访问本地文件的另类方法</title>
		<link>http://www.4nothing.net/blog/2008/10/10/swf-security-net-and-local/</link>
		<comments>http://www.4nothing.net/blog/2008/10/10/swf-security-net-and-local/#comments</comments>
		<pubDate>Fri, 10 Oct 2008 10:55:02 +0000</pubDate>
		<dc:creator>RainFly</dc:creator>
		
		<category><![CDATA[Flash AS2]]></category>

		<category><![CDATA[Flash在RIA中]]></category>

		<guid isPermaLink="false">http://www.4nothing.net/blog/?p=356</guid>
		<description><![CDATA[问题：SWF文件a.swf中有2个按钮，点击其中一个需要访问网络中的地址比如http://www.somesite.com,点击第二个按钮需要访问本地的一个页面，比如local.html，而a.swf是内嵌到页面index.html中的，需要在本... ]]></description>
			<content:encoded><![CDATA[<p>问题：SWF文件a.swf中有2个按钮，点击其中一个需要访问网络中的地址比如http://www.somesite.com,点击第二个按钮需要访问本地的一个页面，比如local.html，而a.swf是内嵌到页面index.html中的，需要在本地访问，而不是放置在服务器上。这时就出现了问题，因为SWF文件要么发布成只访问本地文件，要么是只访问网络，但是任何一项都不能满足既能点开http://www.somesite.com,又能点开local.html。</p>
<p>最开始我想使用localConnection来实现。就是再新建一个SWF，为b.swf，让它发布成只访问网络，而a.swf通过localConnection调用b,让b实现访问。结果发现当两个安全设置不一样时，无法使用localConnection。只能放弃这种想法。</p>
<p>最后借助页面的自动跳转来实现。a.swf仍旧发布成只访问本地，访问http://www.somesite.com改成访问本地文件somesite.html，在somesite.html中设置自动转向http://www.somesite.com<br />
转向的方法有2种，一种是利用javascript的window.location=&#8221;http://www.somesite.com&#8221;,这种方法在IE7中会有警告提示，另一种方法是利用meta标签的refresh来设置：</p>
<pre class="html">
<code class="tag">&lt;meta</code> <code class="attr">http-equiv</code><code class="tag">=</code><code class="attrvalue">&quot;refresh&quot; </code><code class="attr">content</code><code class="tag">=</code><code class="attrvalue">&quot;5; url=http://www.somesite.com/&quot; </code><code class="tag">/&gt;</code>
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.4nothing.net/blog/2008/10/10/swf-security-net-and-local/feed/</wfw:commentRss>
		</item>
		<item>
		<title>小红伞不能更新的问题</title>
		<link>http://www.4nothing.net/blog/2008/09/18/antivir-cannot-update/</link>
		<comments>http://www.4nothing.net/blog/2008/09/18/antivir-cannot-update/#comments</comments>
		<pubDate>Thu, 18 Sep 2008 10:49:47 +0000</pubDate>
		<dc:creator>RainFly</dc:creator>
		
		<category><![CDATA[小红伞]]></category>

		<guid isPermaLink="false">http://www.4nothing.net/blog/?p=354</guid>
		<description><![CDATA[前段时间重装了系统，并从官网下了free版的小红伞，文件名是antivir_workstation_win7u_en_h.exe，但是安装后总是无法更新，更新时总是提示No valide license&#8230;.重装了多次也无用。一直很郁闷。今天... ]]></description>
			<content:encoded><![CDATA[<p>前段时间重装了系统，并从官网下了free版的小红伞，文件名是antivir_workstation_win7u_en_h.exe，但是安装后总是无法更新，更新时总是提示No valide license&#8230;.重装了多次也无用。一直很郁闷。今天仍然不死心，又到官网再去下，发现安装文件更新了，文件名是antivir_workstation_winu_en_h.exe，安装上发现可以更新了。看来是上次的安装文件有问题。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.4nothing.net/blog/2008/09/18/antivir-cannot-update/feed/</wfw:commentRss>
		</item>
		<item>
		<title>[chrome]谷歌金山词霸合作版居然在chrome浏览器中不能用</title>
		<link>http://www.4nothing.net/blog/2008/09/08/chrome-xdic/</link>
		<comments>http://www.4nothing.net/blog/2008/09/08/chrome-xdic/#comments</comments>
		<pubDate>Sun, 07 Sep 2008 16:59:14 +0000</pubDate>
		<dc:creator>RainFly</dc:creator>
		
		<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://www.4nothing.net/blog/?p=352</guid>
		<description><![CDATA[谷歌浏览器chrome推出好几天了，用着挺好，页面渲染速度快，界面简介。但是今天打开谷歌金山词霸合作版时发现却无法在chrome界面内取词，确切的说是页签标题栏、地址栏可以取词，其他地... ]]></description>
			<content:encoded><![CDATA[<p>谷歌浏览器chrome推出好几天了，用着挺好，页面渲染速度快，界面简介。但是今天打开谷歌金山词霸合作版时发现却无法在chrome界面内取词，确切的说是页签标题栏、地址栏可以取词，其他地方无法取词。不知道大家有没有遇到这种情况。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.4nothing.net/blog/2008/09/08/chrome-xdic/feed/</wfw:commentRss>
		</item>
		<item>
		<title>[FlashPlayer10]了解FlashPlayer10中安全规则的变化</title>
		<link>http://www.4nothing.net/blog/2008/09/01/fplayer10_security_changes/</link>
		<comments>http://www.4nothing.net/blog/2008/09/01/fplayer10_security_changes/#comments</comments>
		<pubDate>Mon, 01 Sep 2008 08:26:03 +0000</pubDate>
		<dc:creator>RainFly</dc:creator>
		
		<category><![CDATA[FlashPlayer]]></category>

		<guid isPermaLink="false">http://www.4nothing.net/blog/?p=340</guid>
		<description><![CDATA[原文地址：http://www.adobe.com/devnet/flashplayer/articles/fplayer10_security_changes.html
在Adobe FlashPlayer的下一个版本中会有多种新的特征和改进，并且会对旧的内容做些更新。其中一些变化是有了更加严格的... ]]></description>
			<content:encoded><![CDATA[<p>原文地址：http://www.adobe.com/devnet/flashplayer/articles/fplayer10_security_changes.html<br />
在Adobe FlashPlayer的下一个版本中会有多种新的特征和改进，并且会对旧的内容做些更新。其中一些变化是有了更加严格的安全规则，因此，以前开发的内容可能必须做些改变才能在新的更加严格的安全规则下正常运行。另外的变化则是拥有了以前版本不具有的功能，或者是以前被安全规则限制了的功能。</p>
<p>首先看一下下面列出的Flash Player10 beta中的与安全有关的变化，通过它你可以判断一下是否需要更改你现在的内容，以保证它们的功能在下一个版本中能够正常。<br />
<strong>下面的变化可能需要改变您现有的文件</strong></p>
<ul>
<li><a href="#p1">策略文件严格性:阶段二</a></li>
<li><a href="#p2">Socket连接超时</a></li>
<li><a href="#p3">上传和下载（与需要用户交互）</a></li>
</ul>
<p><strong>安全相关的新特征</strong></p>
<ul>
<li><a href="#p4">本地保存和下载</a></li>
<li><a href="#p5">全屏下限制的键盘输入</a></li>
<li><a href="#p6">通过RTMFP协议的点对点通信</a></li>
</ul>
<p><fieldset id="p1"><br />
<legend>策略文件严格性：阶段二</legend><br />
Adobe从Flash Player 9,0,115,0开始制定关于Flash Player和cross-domain策略文件的规则。考虑到这些变化可能会影响众多的站点，所以决定在FlashPlayer的多个版本中完成3个阶段的变化。</p>
<p>Flash Player 9,0,115,0是第一阶段。之后的Flash Player 9,0,124,0是1.5阶段：仅仅是针对Socket的规则。Flash Player10会完成第2阶段包括针对所有其他非Socket的内容（HTTP/HTTPS/FTP）的跨域策略文件。</p>
<p>阶段二将改变策略文件中的meta-policy的默认行为。meta-policy决定了一个域中策略文件的行为，它允许管理员对该域上的所有策略文件进行控制。meta-policy的概念在阶段一 FlashPlayer9,0,115,0中有介绍。对于那个版本的Player，meta-policy使用默认值&#8221;all&#8221;,意思是允许该域中的所有策略文件保持有效;这样就能与之前的兼容。<br />
在阶段二，Flash Player10 beta，meta-policy的默认值将会从&#8221;all&#8221;变成&#8221;master-only&#8221;。它将会允许所有的master 策略文件(保存在域根目录下名字为crossdomain.xml的文件，比如http://example.com/crossdomain.xml)继续有效。但是，存放在其他位置的其他策略文件必须要一个明确的meta-policy才能使它们继续有效。</p>
<p><strong>有何影响？</strong><br />
将可能影响任何访问跨域内容的SWF文件。这个更新将影响所有在Flash Player 10 beta及后续版本中播放的任何版本的SWF文件（也就是说不管你的SWF文件是发布成几的，7也好，8也好，只要是用Flash Player10的播放器播放，就会受到影响）。也会影响AIR中所有非应用程序的的内容（对AIR应用程序内容本身没有影响）。</p>
<p><strong>我应该做什么</strong><br />
阅读这篇文章,<a href="http://www.adobe.com/devnet/flashplayer/articles/fplayer9_security.html">Policy file changes in Flash Player 9</a>.</p>
<p>为您的域定义一个meta-policy。尽管你可能只需要使用master策略文件，仍然推荐您明确定义一个meta-policy。可以在master策略文件中设置meta-policy，也可以通过服务器头的形式发送。<br />
如果你要访问不是自己控制的域，那么你需要联系那个域的管理员，让他更新下meta-policy。</fieldset><br />
<fieldset id="p2"><legend>Socket连接超时</legend><br />
对于ActionScript Socket和XMLSocket对象，只有在调用connect()方法后经过预定的时间后都会发送一个securityError消息。也就是说，本来很快的securityError事件会等待更多时间才会触发，另一方面，由于网络堵塞，网络繁忙，可能需要更多时间才能连接成功，但是却引发了securityError事件。先前预置的超时时间是20秒，但是借助新提供的API，Socket.timeout和XMLSocket.timeout，可以指定新的超时时间。<br />
<strong>有何影响</strong><br />
可能会影响任何使用Socket或XMLSocket类的SWF文件。这个更新将影响所有在Flash Player 10 beta及后续版本中播放的任何版本的SWF文件（也就是说不管你的SWF文件是发布成几的，7也好，8也好，只要是用Flash Player10的播放器播放，就会受到影响）。也会影响AIR中所有非应用程序的的内容（对AIR应用程序内容本身没有影响）。</p>
<p><strong>我应该做什么</strong><br />
开发者应该能分辨出产生SecurityErrorEvent.SECURITY_ERROR事件的真正原因。另外也可以设置明确的超时时间。较长的超时对网络慢的用户更友好些，而较短的超时则对网速快的用户好。 </fieldset></p>
<p><fieldset id="p3"><legend>上传和下载（需要用户交互）</legend><br />
在Flash Player 9，ActionScript可以在任何时间执行上传和下载。在Flash Player 10 beta中，FileReference.browse和FileReference.download操作只有在用户交互时才能用ActionScript触发。包括鼠标点击或按下键盘的动作。<br />
<strong>有何影响</strong><br />
可能会影响任何使用Filereference.browse 和Filereference.download的SWF文件。这个更新将影响所有在Flash Player 10 beta及后续版本中播放的任何版本的SWF文件（也就是说不管你的SWF文件是发布成几的，7也好，8也好，只要是用Flash Player10的播放器播放，就会受到影响）。也会影响AIR中所有非应用程序的的内容（对AIR应用程序内容本身没有影响）。</p>
<p><strong>我应该做什么</strong></p>
<p>任何在用户交互事件之外的Filereference.browse 和Filereference.download触发的对话框都需要更新。现在只能把它们放到按钮、快捷键或其他能够跟用户交互的事件处理中。</fieldset></p>
<p><fieldset id="p2"><legend>本地保存和下载</legend><br />
开发者将能够允许用户使用标准的系统浏览对话框在正在播放的SWF文件和用户硬盘之间保存或加载数据。之前的版本需要借助服务器才能实现从Flash Player到用户计算机之间的数据传输。现在可以仅仅通过FlashPlayer就可以在客户端完成。<br />
<strong>有何影响</strong></p>
<p>这是Flash Player10 beta的新功能。已经开发的内容不会受到影响，但是以后开发时，可以考虑使用这个新功能。<br />
<strong>我应该做什么</strong><br />
如果你想使用这个新功能，那么你需要把内容发布成Flash Player 10 beta。<br />
注意：AIR程序中使用Flash Player9已经可以访问文件API了。</fieldset><br />
<fieldset id="p5"><legend>受限的全屏键盘输入</legend><br />
当前的Flash Player在全屏状态下是不允许用户输入的。Flash  Player  10 beta会有些改变，允许一部分键在全屏下使用。包括Tab，Spacebar，以及（上下左右）箭头。<br />
<strong>有何影响</strong><br />
这个更新将影响所有在Flash Player 10 beta及后续版本中播放的任何版本的SWF文件（也就是说不管你的SWF文件是发布成几的，7也好，8也好，只要是用Flash Player10的播放器播放，就会受到影响）。也会影响AIR中所有非应用程序的的内容。<br />
<strong>我应该做什么</strong><br />
看起来似乎不会影响已经制作的内容。但是，现在你可以使用新的键盘支持更新你的内容，以和用户在全屏模式下交互。</fieldset><br />
<fieldset id="p6"><legend>新的网络协议:RTMFP</legend><br />
RTMFP提供了在Flash Player和Flash Media Server传输时替代RTMP的功能，它是基于UDP传输。RTMFP用于点对点的能力，允许Flash Player实例不依赖服务器直接发布和播放音频视频。在开始建立连接时依然需要Flash Media Server。<br />
<strong>有何影响</strong><br />
这是Flash Player10 beta的新功能。现存的内容不会受到影响。但是新的内容可以使用它。<br />
<strong>我应该做什么</strong><br />
如果你想使用这个新功能，你应该发布成Flash Player 10beta，并跟支持RTMFP协议的Flash Media Server通信。如果你是网管，你应该熟悉RTMFP的安全问题，直接点对点通信的能力，以及它如何使用UDP，这可能需要更改你的防火墙配置。</fieldset></p>
]]></content:encoded>
			<wfw:commentRss>http://www.4nothing.net/blog/2008/09/01/fplayer10_security_changes/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
