<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[P2P/FMS/C#/Ajax/SEO/项目技术/健康营养 - P2P&FMS]]></title>
<link>http://www.loverer.com/</link>
<description><![CDATA[因为有梦，才会去学习飞翔]]></description>
<language>zh-cn</language>
<copyright><![CDATA[Copyright 2005 PBlog2 v2.4]]></copyright>
<webMaster><![CDATA[ctv0071#hotmail.com(Dreamfly)]]></webMaster>
<generator>PBlog2 v2.4</generator> 
<image>
	<title>P2P/FMS/C#/Ajax/SEO/项目技术/健康营养</title> 
	<url>http://www.loverer.com/images/logos.gif</url> 
	<link>http://www.loverer.com/</link> 
	<description>P2P/FMS/C#/Ajax/SEO/项目技术/健康营养</description> 
</image>

			<item>
			<link>http://www.loverer.com/default.asp?id=433</link>
			<title><![CDATA[一个简单的用ActionScript删除FlashPaper商标的方法]]></title>
			<author>ctv0071#hotmail.com(ym110)</author>
			<category><![CDATA[P2P&amp;FMS]]></category>
			<pubDate>Wed,04 Jun 2008 15:08:02 +0800</pubDate>
			<guid>http://www.loverer.com/default.asp?id=433</guid>	
		<description><![CDATA[原理就是先创建一个空影片剪辑，再把FlashPaper的.swf文件loadMovie进来，然后再对loadMovie进来的东西进行控制。代码如下：<br/><br/><br/>function&nbsp;hideBrand&nbsp;()&nbsp;{&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(paper.gMainView.m_numPagesLoaded)&nbsp;{&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;paper.toolbar_mc.brandClip_mc.swapDepths(1000);&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;paper.toolbar_mc.brandClip_mc.removeMovieClip();&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;paper.setSize&nbsp;(Stage.width,&nbsp;Stage.height);&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clearInterval&nbsp;(hideBrandInterval);&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br/>}&nbsp;<br/>cr&#101;ateEmptyMovieClip&nbsp;(&#34;paper&#34;,&nbsp;1);&nbsp;<br/>paper.loadMovie&nbsp;(&#34;as.jpg&#34;);&nbsp;<br/>hideBrandInterval&nbsp;=&nbsp;setInterval&nbsp;(hideBrand,&nbsp;1);<br/><br/><br/><br/>对了，这里我还把原本的.swf后缀改成了.jpg后缀，没有关系，Flash这家伙可以自动识别<br/><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.loverer.com/default.asp?id=422</link>
			<title><![CDATA[Flash的跨域访问的解决方案]]></title>
			<author>ctv0071#hotmail.com(ym110)</author>
			<category><![CDATA[P2P&amp;FMS]]></category>
			<pubDate>Wed,26 Mar 2008 11:43:34 +0800</pubDate>
			<guid>http://www.loverer.com/default.asp?id=422</guid>	
		<description><![CDATA[写一个名字为&nbsp;crossdomain.xml&nbsp;的XML文件，这个方法是允许任何Flash都可以调用，放到被调用文件的网站根目录下：<br/><br/>&lt;?xml&nbsp;version=&#34;1.0&#34;?&gt;<br/>&lt;!DOCTYPE&nbsp;cross-domain-policy<br/>SYSTEM&nbsp;&#34;<a href="http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd" target="_blank">http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd</a>&#34;&gt;<br/>&lt;cross-domain-policy&gt;<br/>&lt;allow-access-from&nbsp;domain=&#34;*&#34;&nbsp;/&gt;<br/>&lt;/cross-domain-policy&gt;<br/><br/>只让你允许的网站来调用你的数据~.<br/><br/>&lt;?xml&nbsp;version=&#34;1.0&#34;?&gt;&nbsp;<br/>&lt;!DOCTYPE&nbsp;cross-domain-policy<br/>SYSTEM&nbsp;&#34;<a href="http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd" target="_blank">http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd</a>&#34;&gt;<br/>&lt;cross-domain-policy&gt;&nbsp;&nbsp;&nbsp;<br/>&lt;allow-access-from&nbsp;domain=&#34;www.yoursite.com&#34;&nbsp;/&gt;<br/>&lt;allow-access-from&nbsp;domain=&#34;yoursite.com&#34;&nbsp;/&gt;<br/>&lt;allow-access-from&nbsp;domain=&#34;*.loverer.com&#34;&nbsp;/&gt;<br/>&lt;/cross-domain-policy&gt;<br/><br/>如果使用XMLSocket要把端口号加上<br/><br/>&lt;cross-domain-policy&gt;<br/>&lt;allow-access-from&nbsp;domain=&#34;*.foo.com&#34;&nbsp;to-ports=&#34;507,516&#34;&nbsp;/&gt;<br/>&lt;allow-access-from&nbsp;domain=&#34;*.bar.com&#34;&nbsp;to-ports=&#34;516-523&#34;&nbsp;/&gt;<br/>&lt;allow-access-from&nbsp;domain=&#34;www.foo.com&#34;&nbsp;to-ports=&#34;507,516-523&#34;&nbsp;/&gt;<br/>&lt;allow-access-from&nbsp;domain=&#34;202.117.80.2&#34;&nbsp;to-ports=&#34;*&#34;&nbsp;/&gt;<br/>&lt;/cross-domain-policy&gt;<br/><br/>如果安全策略文件放在根目录，文件名字必须为crossdomain.xml，如果不放在根目录，要用System.security.loadPolicyFile(<a href="http://yourdomain.cn/crossdomain.xml" target="_blank">http://yourdomain.cn/crossdomain.xml</a>&nbsp;&nbsp;)这样的方法加载安全策略文件。<br/>]]></description>
		</item>
		
			<item>
			<link>http://www.loverer.com/default.asp?id=410</link>
			<title><![CDATA[Asp.net FMS 开发视频网站]]></title>
			<author>ctv0071#hotmail.com(ym110)</author>
			<category><![CDATA[P2P&amp;FMS]]></category>
			<pubDate>Wed,13 Feb 2008 15:24:11 +0800</pubDate>
			<guid>http://www.loverer.com/default.asp?id=410</guid>	
		<description><![CDATA[开发步骤：<br/>1。下载FMS&nbsp;<a href="http://blogs.ugidotnet.org/kfra/archive/2006/10/04/50003.aspx" target="_blank">http://blogs.ugidotnet.org/kfra/archive/2006/10/04/50003.aspx</a>，安装配置。<br/>2。使用flash制作FMS视频采集的控件。<br/>3。aspx页面嵌入FMS采集控件，运行采集数据上传到FMS服务器，修改数据库的视频文件存放地址。<br/>4。页面嵌入Flash播放控件，加入FLV处理流代码：<br/><br/>&nbsp;1using&nbsp;System;<br/>&nbsp;2using&nbsp;System.IO;<br/>&nbsp;3using&nbsp;System.Web;<br/>&nbsp;4<br/>&nbsp;5<br/>&nbsp;6/**////&nbsp;&lt;summary&gt;<br/>&nbsp;7///&nbsp;Summary&nbsp;description&nbsp;for&nbsp;FLVStreaming<br/>&nbsp;8///&nbsp;&lt;/summary&gt;<br/>&nbsp;9public&nbsp;class&nbsp;FLVStreaming&nbsp;:&nbsp;IHttpHandler<br/>10{<br/>11&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;static&nbsp;readonly&nbsp;byte[]&nbsp;_flvheader&nbsp;=&nbsp;HexToByte(&#34;464C5601010000000900000009&#34;);&nbsp;//&#34;FLV\x1\x1\0\0\0\x9\0\0\0\x9&#34;<br/>12<br/>13&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;FLVStreaming()<br/>14&nbsp;&nbsp;&nbsp;&nbsp;{<br/>15&nbsp;&nbsp;&nbsp;&nbsp;}<br/>16<br/>17&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;void&nbsp;ProcessRequest(HttpContext&nbsp;context)<br/>18&nbsp;&nbsp;&nbsp;&nbsp;{<br/>19&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try<br/>20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>21&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;pos;<br/>22&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;length;<br/>23<br/>24&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Check&nbsp;start&nbsp;parameter&nbsp;if&nbsp;present<br/>25&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;filename&nbsp;=&nbsp;Path.GetFileName(context.Request.FilePath);<br/>26<br/>27&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;using&nbsp;(FileStream&nbsp;fs&nbsp;=&nbsp;new&nbsp;FileStream(context.Server.MapPath(filename),&nbsp;FileMode.Open,&nbsp;FileAccess.Read,&nbsp;FileShare.Read))<br/>28&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>29&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;qs&nbsp;=&nbsp;context.Request.Params[&#34;start&#34;];<br/>30<br/>31&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(string.IsNullOrEmpty(qs))<br/>32&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>33&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pos&nbsp;=&nbsp;0;<br/>34&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;length&nbsp;=&nbsp;Convert.ToInt32(fs.Length);<br/>35&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>36&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br/>37&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>38&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pos&nbsp;=&nbsp;Convert.ToInt32(qs);<br/>39&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;length&nbsp;=&nbsp;Convert.ToInt32(fs.Length&nbsp;-&nbsp;pos)&nbsp;+&nbsp;_flvheader.Length;<br/>40&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>41<br/>42&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Add&nbsp;HTTP&nbsp;header&nbsp;stuff:&nbsp;cache,&nbsp;content&nbsp;type&nbsp;and&nbsp;length&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>43&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;context.Response.Cache.SetCacheability(HttpCacheability.Public);<br/>44&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;context.Response.Cache.SetLastModified(DateTime.Now);<br/>45<br/>46&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;context.Response.AppendHeader(&#34;Content-Type&#34;,&nbsp;&#34;video/x-flv&#34;);<br/>47&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;context.Response.AppendHeader(&#34;Content-Length&#34;,&nbsp;length.ToString());<br/>48<br/>49&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Append&nbsp;FLV&nbsp;header&nbsp;when&nbsp;sending&nbsp;partial&nbsp;file<br/>50&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(pos&nbsp;&gt;&nbsp;0)<br/>51&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>52&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;context.Response.OutputStream.Write(_flvheader,&nbsp;0,&nbsp;_flvheader.Length);<br/>53&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fs.Position&nbsp;=&nbsp;pos;<br/>54&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>55<br/>56&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Read&nbsp;buffer&nbsp;and&nbsp;write&nbsp;stream&nbsp;to&nbsp;the&nbsp;response&nbsp;stream<br/>57&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;const&nbsp;int&nbsp;buffersize&nbsp;=&nbsp;16384;<br/>58&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;byte[]&nbsp;buffer&nbsp;=&nbsp;new&nbsp;byte[buffersize];<br/>59&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>60&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;count&nbsp;=&nbsp;fs.Read(buffer,&nbsp;0,&nbsp;buffersize);<br/>61&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;(count&nbsp;&gt;&nbsp;0)<br/>62&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>63&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(context.Response.IsClientConnected)<br/>64&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>65&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;context.Response.OutputStream.Write(buffer,&nbsp;0,&nbsp;count);<br/>66&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;count&nbsp;=&nbsp;fs.Read(buffer,&nbsp;0,&nbsp;buffersize);<br/>67&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>68&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else<br/><br/>69&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>70&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;count&nbsp;=&nbsp;-1;<br/>71&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>72&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>73&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>74&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>75&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch&nbsp;(Exception&nbsp;ex)<br/>76&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>77&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.Diagnostics.Debug.WriteLine(ex.ToString());<br/>78&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>79&nbsp;&nbsp;&nbsp;&nbsp;}<br/>80<br/>81&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;bool&nbsp;IsReusable<br/>82&nbsp;&nbsp;&nbsp;&nbsp;{<br/>83&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get&nbsp;{&nbsp;return&nbsp;true;&nbsp;}<br/>84&nbsp;&nbsp;&nbsp;&nbsp;}<br/>85<br/>86&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;static&nbsp;byte[]&nbsp;HexToByte(string&nbsp;hexString)<br/>87&nbsp;&nbsp;&nbsp;&nbsp;{<br/>88&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;byte[]&nbsp;returnBytes&nbsp;=&nbsp;new&nbsp;byte[hexString.Length&nbsp;/&nbsp;2];<br/>89&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;returnBytes.Length;&nbsp;i++)<br/>90&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;returnBytes[i]&nbsp;=&nbsp;Convert.ToByte(hexString.Substring(i&nbsp;*&nbsp;2,&nbsp;2),&nbsp;16);<br/>91&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;returnBytes;<br/>92&nbsp;&nbsp;&nbsp;&nbsp;}<br/>93<br/>94}<br/>95修改配置文件，运行页面即可调出视频，播放速度很不错。此仅给出应用Asp.net开发视频网站的思路。<br/><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.loverer.com/default.asp?id=358</link>
			<title><![CDATA[视频格式转化为FLV (C#) ]]></title>
			<author>ctv0071#hotmail.com(ym110)</author>
			<category><![CDATA[P2P&amp;FMS]]></category>
			<pubDate>Fri,02 Nov 2007 12:21:08 +0800</pubDate>
			<guid>http://www.loverer.com/default.asp?id=358</guid>	
		<description><![CDATA[&nbsp;在上次随笔&nbsp;Asp.net&nbsp;FMS&nbsp;开发视频网站&nbsp;中，好多朋友提到其他视频格式转化成FLV格式的问题，经过网上搜索资料研习整理，现经我的一点思路分享给大家：<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;我添加了一个转换FLV工程&nbsp;VideoConvert：<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1。配置文件里添加<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;web.config<br/>&nbsp;1&nbsp;&lt;appSettings&gt;<br/>&nbsp;2<br/>&nbsp;3&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--convert&nbsp;tools&nbsp;path--&gt;<br/>&nbsp;4&nbsp;&nbsp;&nbsp;&nbsp;&lt;add&nbsp;key=&#34;FfmpegPath&#34;&nbsp;value=&#34;D:\tools\&#34;/&gt;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;5<br/>&nbsp;6&nbsp;&nbsp;&nbsp;&nbsp;&lt;!--&nbsp;setting&nbsp;--&gt;<br/>&nbsp;7&nbsp;&nbsp;&nbsp;&nbsp;&lt;add&nbsp;key=&#34;ThreadCount&#34;&nbsp;value=&#34;5&#34;&nbsp;/&gt;<br/>&nbsp;8&nbsp;&nbsp;&nbsp;&nbsp;&lt;add&nbsp;key=&#34;BatchSize&#34;&nbsp;value=&#34;10&#34;&nbsp;/&gt;<br/>&nbsp;9&nbsp;&nbsp;&nbsp;&nbsp;&lt;add&nbsp;key=&#34;QueueTimeout&#34;&nbsp;value=&#34;20&#34;&nbsp;/&gt;<br/>10&nbsp;&nbsp;&nbsp;&nbsp;&lt;add&nbsp;key=&#34;TransactionTimeout&#34;&nbsp;value=&#34;30&#34;&nbsp;/&gt;<br/>11&nbsp;&nbsp;&lt;/appSettings&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2。添加一个接口&nbsp;<br/>IConvert<br/>&nbsp;1using&nbsp;System;<br/>&nbsp;2using&nbsp;System.Collections.Generic;<br/>&nbsp;3using&nbsp;System.Text;<br/>&nbsp;4<br/>&nbsp;5namespace&nbsp;VideoConvert<br/>&nbsp;6{<br/>&nbsp;7&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;interface&nbsp;IConvert<br/>&nbsp;8&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;9<br/>10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/**////&nbsp;&lt;summary&gt;<br/>11&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;将视频文件转换为Flv格式<br/>12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;/summary&gt;<br/>13&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;param&nbsp;name=&#34;sourceFile&#34;&gt;要转换的文件&lt;/param&gt;<br/>14&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;returns&gt;&lt;/returns&gt;<br/>15&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bool&nbsp;Convert(string&nbsp;sourceFile);<br/>16<br/>17<br/>18<br/>19&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/**////&nbsp;&lt;summary&gt;<br/>20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;获取缩略图<br/>21&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;/summary&gt;<br/>22&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;param&nbsp;name=&#34;sourceFile&#34;&gt;&lt;/param&gt;<br/>23&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;returns&gt;&lt;/returns&gt;<br/>24&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bool&nbsp;GetSmallImage(string&nbsp;sourceFile);<br/>25&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>26<br/>27&nbsp;&nbsp;&nbsp;&nbsp;}<br/>28}<br/>29<br/>3。转换工具设定继承&nbsp;IConvert<br/><br/>FfmpegConvert&nbsp;<br/>&nbsp;1using&nbsp;System;<br/>&nbsp;2using&nbsp;System.Collections.Generic;<br/>&nbsp;3using&nbsp;System.Text;<br/>&nbsp;4using&nbsp;System.Configuration;<br/>&nbsp;5<br/>&nbsp;6<br/>&nbsp;7namespace&nbsp;VideoConvert<br/>&nbsp;8{<br/>&nbsp;9&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;class&nbsp;FfmpegConvert&nbsp;:&nbsp;IConvert<br/>10&nbsp;&nbsp;&nbsp;&nbsp;{<br/>11<br/>12<br/>13&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/**////&nbsp;&lt;summary&gt;<br/>14&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;转换软件所在的路径<br/>15&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;/summary&gt;<br/>16&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;string&nbsp;ConvertTool&nbsp;=&nbsp;ConfigurationManager.AppSettings[&#34;FfmpegPath&#34;]&nbsp;+&nbsp;&#34;ffmpeg.exe&#34;;<br/>17<br/>18<br/>19&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/**////&nbsp;&lt;summary&gt;<br/>20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;构造函数<br/>21&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;/summary&gt;<br/>22&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;FfmpegConvert()<br/>23&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>24<br/>25&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>26<br/>27<br/>28&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/**////&nbsp;&lt;summary&gt;<br/>29&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;将视频文件转换为Flv格式<br/>30&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;/summary&gt;<br/>31&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;param&nbsp;name=&#34;sourceFile&#34;&gt;要转换的文件&lt;/param&gt;<br/>32&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;returns&gt;&lt;/returns&gt;<br/>33&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;bool&nbsp;Convert(string&nbsp;sourceFile)<br/>34&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>35&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try<br/>36&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>37&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//文件名是否为空<br/>38&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(string.IsNullOrEmpty(sourceFile))&nbsp;return&nbsp;false;<br/>39&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//检测文件是否存在<br/>40<br/>41<br/>42&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;TargetFile&nbsp;=&nbsp;sourceFile.Substring(0,&nbsp;sourceFile.Length&nbsp;-&nbsp;4)&nbsp;+&nbsp;&#34;.flv&#34;;<br/>43&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;Argu&nbsp;=&nbsp;@&#34;-i&nbsp;&#34;&nbsp;+&nbsp;sourceFile&nbsp;+&nbsp;&#34;&nbsp;-ab&nbsp;56&nbsp;-ar&nbsp;22050&nbsp;-b&nbsp;500&nbsp;-r&nbsp;15&nbsp;-s&nbsp;480x360&nbsp;&#34;&nbsp;+&nbsp;TargetFile;<br/>44<br/>45&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.Diagnostics.ProcessStartInfo&nbsp;startInfo&nbsp;=&nbsp;new&nbsp;System.Diagnostics.ProcessStartInfo(ConvertTool,&nbsp;Argu);<br/>46&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.Diagnostics.Process.Start(startInfo);<br/>47&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.Threading.Thread.Sleep(6000);<br/>48&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true;<br/>49<br/>50&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>51&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch&nbsp;(Exception&nbsp;exp)<br/>52&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>53&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throw&nbsp;exp;<br/>54&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>55<br/>56&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>57<br/>58<br/>59&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/**////&nbsp;&lt;summary&gt;<br/>60&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;获取缩略图<br/>61&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;/summary&gt;<br/>62&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;param&nbsp;name=&#34;sourceFile&#34;&gt;&lt;/param&gt;<br/>63&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;returns&gt;&lt;/returns&gt;<br/>64&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;bool&nbsp;GetSmallImage(string&nbsp;sourceFile)<br/>65&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>66<br/>67&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//文件名是否为空<br/>68&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(string.IsNullOrEmpty(sourceFile))&nbsp;return&nbsp;false;<br/>69&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//检测文件是否存在<br/>70<br/>71&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try<br/>72&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>73&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;TargetFile&nbsp;=&nbsp;sourceFile.Substring(0,&nbsp;sourceFile.Length&nbsp;-&nbsp;4)&nbsp;+&nbsp;&#34;.jpg&#34;;<br/>74&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;Argu&nbsp;=&nbsp;@&#34;-i&nbsp;&#34;&nbsp;+&nbsp;sourceFile&nbsp;+&nbsp;&#34;&nbsp;-y&nbsp;-f&nbsp;image2&nbsp;-ss&nbsp;08.010&nbsp;-t&nbsp;0.001&nbsp;-s&nbsp;352x240&nbsp;&#34;&nbsp;+&nbsp;TargetFile;<br/>75&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.Diagnostics.ProcessStartInfo&nbsp;startInfo&nbsp;=&nbsp;new&nbsp;System.Diagnostics.ProcessStartInfo(ConvertTool,&nbsp;Argu);<br/>76&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.Diagnostics.Process.Start(startInfo);<br/>77&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;System.Threading.Thread.Sleep(6000);<br/>78<br/>79<br/>80&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//必须等待进行完成后才能返回结果<br/>81<br/>82<br/>83&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;true;<br/>84<br/>85&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>86&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch&nbsp;(Exception&nbsp;exp)<br/>87&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>88&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;throw&nbsp;exp;<br/>89&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>90<br/>91&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>92<br/>93&nbsp;&nbsp;&nbsp;&nbsp;}<br/>94}<br/>95<br/>&nbsp;&nbsp;&nbsp;<br/>4.<br/><br/>program<br/>&nbsp;&nbsp;1using&nbsp;System;<br/>&nbsp;&nbsp;2using&nbsp;System.Collections.Generic;<br/>&nbsp;&nbsp;3using&nbsp;System.Configuration;<br/>&nbsp;&nbsp;4using&nbsp;System.Text;<br/>&nbsp;&nbsp;5using&nbsp;System.Threading;<br/>&nbsp;&nbsp;6using&nbsp;System.Transactions;<br/>&nbsp;&nbsp;7using&nbsp;VideoConvert;<br/>&nbsp;&nbsp;8<br/>&nbsp;&nbsp;9namespace&nbsp;VideoConvert<br/>&nbsp;10{<br/>&nbsp;11&nbsp;&nbsp;&nbsp;&nbsp;class&nbsp;Program<br/>&nbsp;12&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;13<br/>&nbsp;14&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//threadCount&nbsp;<br/>&nbsp;15&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;static&nbsp;int&nbsp;threadCount&nbsp;=&nbsp;int.Parse(ConfigurationManager.AppSettings[&#34;ThreadCount&#34;]);<br/>&nbsp;16&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;17&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;static&nbsp;IConvert&nbsp;tool&nbsp;=&nbsp;new&nbsp;FfmpegConvert();<br/>&nbsp;18<br/>&nbsp;19&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//finished&nbsp;count<br/>&nbsp;20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;static&nbsp;int&nbsp;completeCount&nbsp;=&nbsp;0;<br/>&nbsp;21<br/>&nbsp;22&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;void&nbsp;Main(string[]&nbsp;args)<br/>&nbsp;23&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;24<br/>&nbsp;25<br/>&nbsp;26&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Thread&nbsp;workTicketThread;<br/>&nbsp;27&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Thread[]&nbsp;workerThreads&nbsp;=&nbsp;new&nbsp;Thread[threadCount];<br/>&nbsp;28<br/>&nbsp;29&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;threadCount;&nbsp;i++)<br/>&nbsp;30&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;31<br/>&nbsp;32&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;workTicketThread&nbsp;=&nbsp;new&nbsp;Thread(new&nbsp;ThreadStart(ProcessVideo));<br/>&nbsp;33<br/>&nbsp;34&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Make&nbsp;this&nbsp;a&nbsp;background&nbsp;thread,&nbsp;so&nbsp;it&nbsp;will&nbsp;terminate&nbsp;when&nbsp;the&nbsp;main&nbsp;thread/process&nbsp;is&nbsp;de-activated<br/>&nbsp;35&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;workTicketThread.IsBackground&nbsp;=&nbsp;true;<br/>&nbsp;36&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;workTicketThread.SetApartmentState(ApartmentState.STA);<br/>&nbsp;37<br/>&nbsp;38&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;Start&nbsp;the&nbsp;Work<br/>&nbsp;39&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;workTicketThread.Start();<br/>&nbsp;40&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;workerThreads[i]&nbsp;=&nbsp;workTicketThread;<br/>&nbsp;41&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;42<br/>&nbsp;43&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(&#34;Converting&nbsp;begin.&nbsp;press&nbsp;Enter&nbsp;stop&#34;);<br/>&nbsp;44&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.ReadLine();<br/>&nbsp;45&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(&#34;cancel&#34;);<br/>&nbsp;46<br/>&nbsp;47&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//abort&nbsp;all&nbsp;threads<br/>&nbsp;48&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;workerThreads.Length;&nbsp;i++)<br/>&nbsp;49&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;50<br/>&nbsp;51&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;workerThreads[i].Abort();<br/>&nbsp;52&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;53<br/>&nbsp;54&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine();<br/>&nbsp;55&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(&#34;&nbsp;Processed&#34;&nbsp;+&nbsp;completeCount&nbsp;+&nbsp;&#34;video&nbsp;files&#34;);<br/>&nbsp;56&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(&#34;&nbsp;Process&nbsp;compeleted.&nbsp;press&nbsp;Enter&nbsp;to&nbsp;exit&#34;);<br/>&nbsp;57&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.ReadLine();<br/>&nbsp;58<br/>&nbsp;59<br/>&nbsp;60&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;61<br/>&nbsp;62<br/>&nbsp;63&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/**////&nbsp;&lt;summary&gt;<br/>&nbsp;64&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;Convert&nbsp;<br/>&nbsp;65&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;/summary&gt;<br/>&nbsp;66&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;///&nbsp;&lt;returns&gt;&lt;/returns&gt;<br/>&nbsp;67&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;static&nbsp;void&nbsp;ProcessVideo()<br/>&nbsp;68&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br/>&nbsp;69&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;70<br/>&nbsp;71&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;(true)<br/>&nbsp;72&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;73&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;74&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;75&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;76&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!string.IsNullOrEmpty(waitConvertFile))<br/>&nbsp;77&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;78&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Convert<br/>&nbsp;79&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(&#34;start&nbsp;to&nbsp;convert&nbsp;file:&#34;&nbsp;+&nbsp;waitConvertFile&nbsp;+&nbsp;&#34;&#34;);<br/>&nbsp;80&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try<br/>&nbsp;81&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;82&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(tool.Convert(waitConvertFile.PhysicalPath)&nbsp;&amp;&amp;&nbsp;tool.GetSmallImage(waitConvertFile.PhysicalPath))<br/>&nbsp;83&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;84&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;completeCount++;<br/>&nbsp;85<br/>&nbsp;86&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//Change&nbsp;waitConvertFile&nbsp;status&nbsp;if&nbsp;need<br/>&nbsp;87&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;88&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;89&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;90&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch&nbsp;(Exception&nbsp;exp)<br/>&nbsp;91&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br/>&nbsp;92&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//setting&nbsp;Convert&nbsp;failure<br/>&nbsp;93&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(&#34;文件&#34;&nbsp;+&nbsp;waitConvertFile.VideoID&nbsp;+&nbsp;&#34;Convert&nbsp;failure&#34;);<br/>&nbsp;94&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;95&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(&#34;文件&#34;&nbsp;+&nbsp;waitConvertFile.VideoID&nbsp;+&nbsp;&#34;Convert&nbsp;ending&#34;);<br/>&nbsp;96&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Thread.Sleep(1000);<br/>&nbsp;97&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>&nbsp;98&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Thread.Sleep(1000&nbsp;*&nbsp;60);<br/>&nbsp;99<br/>100&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>101&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>102&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>103&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>104&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>105<br/>106&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>107&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br/>108&nbsp;&nbsp;&nbsp;&nbsp;}<br/>109}<br/>通过四步，我们视频转换工程就创建完了，这里的主要思路是服务器端调用视频转换工具&nbsp;ffmpeg.exe，设置参数，通过Main来实现转换。]]></description>
		</item>
		
			<item>
			<link>http://www.loverer.com/default.asp?id=351</link>
			<title><![CDATA[配置边缘服务器的注意事项 ]]></title>
			<author>ctv0071#hotmail.com(ym110)</author>
			<category><![CDATA[P2P&amp;FMS]]></category>
			<pubDate>Thu,01 Nov 2007 11:54:57 +0800</pubDate>
			<guid>http://www.loverer.com/default.asp?id=351</guid>	
		<description><![CDATA[&nbsp;&nbsp;<br/>配置边缘服务器时要注意：<br/><br/>边缘服务器的Server.xml中的AutoDiscovery的Enable值应设为true，而源服务器恰恰相反。<br/><br/>如果在源服务器上放置了FLV，如：applications/appname/videos/streams，那么在边缘服务器也需要创建同样的文件夹，但不必放FLV，因为边缘服务器会将FLV从源服务器读到自己的缓存中。<br/><br/>客户端代码示例一：<br/><br/>var&nbsp;nc:NetConnection&nbsp;=&nbsp;new&nbsp;NetConnection();<br/><br/>nc.fpadZone&nbsp;=&nbsp;0;&nbsp;//&nbsp;These&nbsp;values&nbsp;are&nbsp;based&nbsp;on&nbsp;FMS&nbsp;config.<br/><br/>nc.fpadWait&nbsp;=&nbsp;250;<br/><br/>nc.fpadOnly&nbsp;=&nbsp;false;<br/><br/>nc.fpadPort&nbsp;=&nbsp;67;&nbsp;<br/><br/>nc.onStatus&nbsp;=&nbsp;function(info){&nbsp;<br/><br/>if(info.code&nbsp;==&nbsp;“NetConnection.Connect.Success”){<br/><br/>cr&#101;ateStreamObject();<br/><br/>}<br/><br/>}&nbsp;<br/><br/>nc.connect(”rtmp://80.12.20.8/mySite/videos”);&nbsp;<br/><br/>客户端代码示例二：<br/><br/>var&nbsp;nc:NetConnection&nbsp;=&nbsp;new&nbsp;NetConnection();<br/><br/>nc.fpadZone&nbsp;=&nbsp;0;&nbsp;//&nbsp;default&nbsp;is&nbsp;0.&nbsp;<br/><br/>nc.fpadWait&nbsp;=&nbsp;250;&nbsp;//&nbsp;in&nbsp;milliseconds<br/><br/>nc.fpadOnly&nbsp;=&nbsp;false;&nbsp;//&nbsp;boolean.&nbsp;true/false<br/><br/>nc.fpadPort&nbsp;=&nbsp;67;&nbsp;//&nbsp;Target&nbsp;port&nbsp;to&nbsp;broadcast<br/><br/>nc.fpadInfo.ip&nbsp;=&nbsp;edgeip;&nbsp;//&nbsp;only&nbsp;available&nbsp;if&nbsp;proxy&nbsp;is&nbsp;detected<br/><br/>nc.fpadInfo.port&nbsp;=&nbsp;edgeport;&nbsp;//&nbsp;only&nbsp;available&nbsp;if&nbsp;proxy&nbsp;is&nbsp;detected.&nbsp;<br/><br/>在上面的代码中：<br/><br/>fpadInfo只有在侦测到边缘服务器的时候可用，可以在onStatus函数中利用trace输出，FP会根据fpadInfo.ip和fpadInfo.port重新构造连接，如果边缘服务器和源服务器配置错误的话，该信息会帮助你检测错误所在。<br/><br/>fpadPort是可以被更改的，如果目标FMS边缘服务器正在侦听其它端口而不是67的话。<br/><br/>fpadWait是响应时间，如果超时没有边缘服务器响应的话，它将直接连接到源服务器。<br/><br/>注意源服务器的AutoDiscovery不能开启，否则客户端将无法连接到源服务器。<br/><br/>配置如下：<br/><br/>Server.xml&nbsp;-&gt;&nbsp;AutoDiscovery&nbsp;-&gt;&nbsp;Enable&nbsp;:&nbsp;true&nbsp;//开启FPAD（flash代理自动侦测连接）<br/><br/>Server.xml&nbsp;-&gt;&nbsp;AutoDiscovery&nbsp;-&gt;&nbsp;ProxyInfo:edgeserverip:port&nbsp;//IP和端口指的是边缘服务器的IP和端口，这里设置的IP和端口将被客户端用来重新构造连接字符串。端口通常为1935。&nbsp;&nbsp;Vhost.xml&nbsp;-&gt;&nbsp;Proxy&nbsp;-&gt;&nbsp;Mode&nbsp;:&nbsp;remote&nbsp;//将该服务器设置为边缘服务器。<br/><br/>Server.xml&nbsp;-&gt;&nbsp;AutoDiscovery&nbsp;-&gt;&nbsp;AllowZone&nbsp;:&nbsp;0&nbsp;//默认为0<br/><br/>Server.xml&nbsp;-&gt;&nbsp;AutoDiscovery&nbsp;-&gt;&nbsp;MyZone&nbsp;:&nbsp;0&nbsp;//默认为0<br/><br/>Server.xml&nbsp;-&gt;&nbsp;AutoDiscovery&nbsp;-&gt;&nbsp;BindInfo&nbsp;:&nbsp;:67&nbsp;//&nbsp;67端口是FMS侦听的默认端口，它是DHCP的端口<br/><br/>配置完成后，该边缘服务器就可以侦听来自FP的连接了。<br/><br/>MyZone可以设成任意值，比如，MyZone和AllowZone都设成8，那么它将只允许客户端FP广播fpadZone=8，默认的fpadZone=0就不能连接该边缘服务器了。<br/><br/>布署边缘服务器的好处有三：一是将源服务器上的连接分发给边缘服务器可以减轻源服务器的负担；二是将数据缓存到边缘服务器，可以节约企业内部的带宽；三是可以协助某个组织在WEB代理服务器群中布署FMS边缘服务器。<br/>]]></description>
		</item>
		
			<item>
			<link>http://www.loverer.com/default.asp?id=350</link>
			<title><![CDATA[在多台FMS服务器之间共享流 ]]></title>
			<author>ctv0071#hotmail.com(ym110)</author>
			<category><![CDATA[P2P&amp;FMS]]></category>
			<pubDate>Thu,01 Nov 2007 11:50:19 +0800</pubDate>
			<guid>http://www.loverer.com/default.asp?id=350</guid>	
		<description><![CDATA[FMS有一个非常重要的功能,那就是可以在多台服务器之间共享流.<br/><br/>利用这一功能,我们可以把源服务器上的流分发到其它的服务器,这些获得流的服务器同样可以作为新的源服务器使用.这个功能有点象FMS集群.<br/><br/>我们都知道,利用WMP插件可以获取网上的流媒体地址制作网络电视台,其实利用Flash和FMS同样也可以实现.<br/><br/>在一台服务器上采集电视信号,然后将采集的流PUB到IP为127.0.0.1的一个APP(假设是:tvSet)内,假设该流的名称为&#34;cctv1&#34;,<br/><br/>这样,连接到该服务器的FP客户端可以很轻易地获取该流.但连接数一多,服务器可能就会负担过重,这时就要开始考虑分流.<br/><br/>分流的方案至少有两种,一种是利用代理服务器,一种就是我们要说的在多台服务器之间共享流了.<br/><br/>那怎样把流分发下去呢?<br/><br/>这第一台源服务器不用再做任何事情,它只负责接收和PUB电视信号好了,我们另找一台服务器,在FMS应用程序的main.asc中写入以下代码:<br/><br/>//程序启动时执行<br/>application.onAppStart&nbsp;=&nbsp;function()&nbsp;{<br/>&nbsp;this.myNC=&nbsp;new&nbsp;NetConnection();&nbsp;&nbsp;<br/>&nbsp;this.myNC.onStatus&nbsp;=&nbsp;NC_onStatus;<br/>&nbsp;this.myNC.connect(&#34;rtmp://第一台源服务器的地址/tvSet&#34;);&nbsp;<br/>};<br/><br/>function&nbsp;NC_onStatus(info){&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;switch&nbsp;(info.code)&nbsp;{<br/>&nbsp;&nbsp;case&nbsp;&#34;NetConnection.Connect.Success&#34;&nbsp;:<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;application.myStream&nbsp;=&nbsp;Stream.get(&#34;cctv1&#34;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;application.myStream.onStatus&nbsp;=&nbsp;NS_onStatus;<br/>&nbsp;&nbsp;&nbsp;if&nbsp;(application.myStream){<br/>&nbsp;&nbsp;&nbsp;&nbsp;application.myStream.play(&#34;cctv1&#34;,-2,&nbsp;-1,false,application.myNC);<br/>&nbsp;&nbsp;&nbsp;}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;trace(&#34;连接成功!&#34;);&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;break;<br/>&nbsp;&nbsp;case&nbsp;&#34;NetConnection.Connect.Failed&#34;&nbsp;:<br/>&nbsp;&nbsp;&nbsp;trace(&#34;连接失败!&#34;);<br/>&nbsp;&nbsp;&nbsp;break;<br/>&nbsp;&nbsp;case&nbsp;&#34;NetConnection.Connect.Rejected&#34;&nbsp;:<br/>&nbsp;&nbsp;&nbsp;trace(&#34;连接失败!&#34;);<br/>&nbsp;&nbsp;&nbsp;break;<br/>&nbsp;}<br/>}<br/>function&nbsp;NS_onStatus(info){&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;trace(info.code);&nbsp;&nbsp;&nbsp;&nbsp;<br/>}<br/><br/>这样新的服务器就获取了与第一台源服务器同样的流.<br/><br/>客户端再连接的时候就不必再连接第一台源服务器而连接到新的源服务器上,新的源服务器可以是一台,也可以是多台,这样就将第一台源服务器的负担降到极小.<br/><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.loverer.com/default.asp?id=343</link>
			<title><![CDATA[as小技巧(收集)]]></title>
			<author>ctv0071#hotmail.com(ym110)</author>
			<category><![CDATA[P2P&amp;FMS]]></category>
			<pubDate>Tue,16 Oct 2007 18:13:36 +0800</pubDate>
			<guid>http://www.loverer.com/default.asp?id=343</guid>	
		<description><![CDATA[设置首页代码：<br/><br/><br/>on&nbsp;(release)&nbsp;{<br/>&nbsp;geturl(&#34;javascript:document.body.style.behavior=\&#34;url(#default#homepage)\&#34;;document.body.sethomepage(\&#34;<a href="http://www.flash8.net" target="_blank">http://www.flash8.net</a>\&#34;)&#34;,&nbsp;&#34;_self&#34;);<br/>}<br/>加为收藏代码：<br/><br/>on&nbsp;(release)&nbsp;{<br/>&nbsp;geturl(&#34;javascript:window.external.addfavorite(\&#34;<a href="http://www.flash8.net" target="_blank">http://www.flash8.net</a>\&#34;)&#34;,&nbsp;&#34;_self&#34;);<br/>}<br/>&nbsp;<br/>判断输入是否为数字的函数：&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>on(release){&nbsp;<br/>if(Number(pass)==NaN){//判断输入是否为数字&nbsp;<br/>pass=&#34;&#34;;&nbsp;<br/>}&nbsp;<br/>&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>检查E-MAIL的函数：&nbsp;<br/>function&nbsp;checkemail(email)&nbsp;{<br/>var&nbsp;str&nbsp;=&nbsp;new&nbsp;String(email);<br/>var&nbsp;arr_email&nbsp;=&nbsp;str.split(&#34;@&#34;);<br/>if&nbsp;((arr_email.length&nbsp;!=&nbsp;2)&nbsp;||&nbsp;(arr_email[1].indexOf(&#34;.&#34;)&lt;1))&nbsp;{<br/>return&nbsp;(false);<br/>}&nbsp;else&nbsp;{<br/>return&nbsp;(true);<br/>}<br/>}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>延时函数：<br/>function&nbsp;showTime(second,&nbsp;option)&nbsp;{<br/>//延时函数&nbsp;<br/>this.cr&#101;ateEmptyMovieClip(&#34;t_mc&#34;,&nbsp;9999);<br/>t&nbsp;=&nbsp;getTimer();<br/>f&nbsp;=&nbsp;false;<br/>if&nbsp;((getTimer()-t)&gt;(second*1000))&nbsp;{<br/>option();<br/>}<br/>}<br/>function&nbsp;go()&nbsp;{<br/>//加入效果&nbsp;<br/>jpg2._y&nbsp;=&nbsp;jpg2._y+77;<br/>jpg2._alpha&nbsp;=&nbsp;jpg2._alpha-15;<br/>}<br/>fscommand(&#34;fullscreen&#34;,&nbsp;&#34;true&#34;);<br/>cr&#101;ateEmptyMovieClip(&#34;jpg1&#34;,&nbsp;1);<br/>cr&#101;ateEmptyMovieClip(&#34;jpg2&#34;,&nbsp;2);<br/>jpg1.loadMovie(&#34;1.jpg&#34;);<br/>jpg2.loadMovie(&#34;2.jpg&#34;);<br/>i&nbsp;=&nbsp;0;<br/>while&nbsp;(i&lt;=100)&nbsp;{<br/>showTime(0.1,&nbsp;go);<br/>i&nbsp;=&nbsp;i+20;<br/>}<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>FLASH中的保留小数的函&nbsp;<br/>int(你的数*10)/10;&nbsp;&nbsp;<br/>这样是保留一位&nbsp;&nbsp;<br/>乘上100就是两位。以此类推&nbsp;<br/>&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>FLASH脚本实现关机&nbsp;<br/>flash5:&nbsp;&nbsp;<br/>fscommand&nbsp;(&#34;exec&#34;,&#34;rundll&#34;+chr(9)+&#34;user.exe,exitwindows&#34;);&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>鼠标双击问题！&nbsp;<br/>lsn_DbClick&nbsp;=&nbsp;new&nbsp;Object();<br/>lsn_key&nbsp;=&nbsp;new&nbsp;Object();<br/>lsn_DbClick.onMouseDown&nbsp;=&nbsp;function()&nbsp;{<br/>clickTime&nbsp;=&nbsp;getTimer();<br/>if&nbsp;(clickTime-lastClickTime&lt;=300)&nbsp;{<br/>trace(&#34;双击了鼠标&#34;);<br/>}<br/>lastClickTime&nbsp;=&nbsp;clickTime;<br/>};<br/>Mouse.addListener(lsn_DbClick);<br/>time&nbsp;=&nbsp;getTimer()-down_time;<br/>if&nbsp;(time&lt;300)&nbsp;{<br/>//双击后的代码部分&nbsp;<br/>}<br/>down_time&nbsp;=&nbsp;getTimer();<br/>怎样在从另一个swf中获取变量&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>loadMovieNum(&#34;vars.swf&#34;,&nbsp;1[&#34;POST&#34;]);<br/>_root.onEnterFrame&nbsp;=&nbsp;function()&nbsp;{<br/>trace(_level1.myvab);<br/>};<br/>//当加载完毕后,输出就有值了...&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>有谁知道鼠标右键及滚轮的代码&nbsp;<br/>&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;Key.isDown(2){}，（左键的代码是1）&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;左键：Key.isToggled(1)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;右键：Key.isToggled(2)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;滚轮：Key.isToggled(4)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;滚轮1：Key.isToggled(4)&nbsp;PC机上用&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;滚轮2：Key.isToggled(3)&nbsp;MAC机上用&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;未知：Key.isToggled(3)&nbsp;<br/>&nbsp;&nbsp;&nbsp;this.onEnterFrame&nbsp;=&nbsp;function()&nbsp;{&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(Key.isDown(2)){&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;trace(&#34;asdfjsdjkf&#34;);&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br/>&nbsp;&nbsp;&nbsp;}&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;<br/>实现TAB功能&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;获得焦点&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;使用Sel&#101;ction.setfocus()函数&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;举个例子：&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;例如你在主影片中有N个文本框，变量分别为text1,text2.....你想使影片一播放就把焦点落到第一个<br/>文本框你就在第一FRAME&nbsp;加AS如下:&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sel&#101;ction.setfocus(&#34;_root.text1&#34;);&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;我们可以举一反三&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>实现TAB功能&nbsp;二&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;把这个N个文本框做组成一个数组&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;numarray=new&nbsp;array(&#34;_root.text1&#34;,&#34;_root.text2&#34;,.....................&#34;_root.textn&#34;);&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;首先获得鼠标焦点&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x=Sel&#101;ction.getfocus();/*&nbsp;x&nbsp;获得鼠标焦点的一个字符串&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(i=0;i&lt;=n;i++)&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(numarray[i]==x){&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;num=i;&nbsp;/*获得当前焦点在数组中的位置&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;然后编写TAB键功能&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;on&nbsp;(keyPress&nbsp;&#34;&#34;)&nbsp;{&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(num==n){num=0;}&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else{num++;}&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sel&#101;ction.setfocus(numarray[num]);&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br/>按钮能像window那样用Tab键来转换选择&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;用button.onKillFoucus<br/>&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*两点间画直线&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*画螺旋线&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*画正方形、圆、椭圆&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*抛物线&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*正弦、余弦线&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;使用方法：加到帧中就可&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;画直线&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;/&nbsp;x1,&nbsp;y1:&nbsp;起点坐标&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;x2,&nbsp;y2:&nbsp;终点坐标&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;k是层次&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Movieclip.prototype.drawline&nbsp;=&nbsp;function(x1,&nbsp;y1,&nbsp;x2,&nbsp;y2,&nbsp;k)&nbsp;{&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.linestyle(1);&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.moveTo(x1,&nbsp;y1);&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.lineTo(x2,&nbsp;y2);&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;从(0,0)到(100,100)画一条线&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_root.cr&#101;ateEmptyMovieClip(&#34;mc&#34;,&nbsp;10);&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mc.drawline(0,&nbsp;0,&nbsp;100,&nbsp;100);&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;画螺旋线&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;w、h为宽和高&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;f控制线的长短，用弧度表示&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Movieclip.prototype.drawhelix&nbsp;=&nbsp;function(w,&nbsp;h,&nbsp;f)&nbsp;{&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(var&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.lineTo(x=Math.sin(i)*i*w,&nbsp;y=Math.cos(i)*i*h);&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.linestyle(1);&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;以(100,100)为中心画螺旋线&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_root.cr&#101;ateEmptyMovieClip(&#34;luo&#34;,&nbsp;1);&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;with&nbsp;(luo)&nbsp;{&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;drawhelix(5,&nbsp;5,&nbsp;13);&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_x&nbsp;+=&nbsp;100;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_y&nbsp;+=&nbsp;100;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;多功能函数，可画圆，椭圆，正多边形等&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;n为边数&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Movieclip.prototype.drawmany&nbsp;=&nbsp;function(w,&nbsp;h,&nbsp;n)&nbsp;{&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f&nbsp;=&nbsp;2*Math.PI;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(var&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&lt;=f/n*(n+1);&nbsp;i&nbsp;+=&nbsp;f/n)&nbsp;{&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.lineTo(x=Math.sin(i)*w,&nbsp;y=Math.cos(i)*h);&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.linestyle(1);&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;画一正五边形&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_root.cr&#101;ateEmptyMovieClip(&#34;duobian&#34;,&nbsp;2);&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;with&nbsp;(duobian)&nbsp;{&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;drawmany(50,&nbsp;50,&nbsp;5);&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_x&nbsp;+=&nbsp;250;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_y&nbsp;+=&nbsp;100;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;5为多边形的边数，6.3为2pai&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;画一椭圆&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_root.cr&#101;ateEmptyMovieClip(&#34;tuo&#34;,&nbsp;3);&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;with&nbsp;(tuo)&nbsp;{&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;drawmany(25,&nbsp;50,&nbsp;100);&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_x&nbsp;+=&nbsp;400;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_y&nbsp;+=&nbsp;100;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;圆&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_root.cr&#101;ateEmptyMovieClip(&#34;yuan&#34;,&nbsp;4);&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;with&nbsp;(yuan)&nbsp;{&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;drawmany(50,&nbsp;50,&nbsp;100);&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_x&nbsp;+=&nbsp;400;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_y&nbsp;+=&nbsp;300;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;抛物线&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Movieclip.prototype.drawparabola&nbsp;=&nbsp;function(l,&nbsp;r,&nbsp;k)&nbsp;{&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(var&nbsp;i&nbsp;=&nbsp;-l;&nbsp;i&lt;=r;&nbsp;i&nbsp;+=&nbsp;1)&nbsp;{&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.lineTo(x=i,&nbsp;y=k*i*i);&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.linestyle(1);&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;调用&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_root.cr&#101;ateEmptyMovieClip(&#34;parabola&#34;,&nbsp;100);&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;with&nbsp;(parabola)&nbsp;{&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;drawparabola(50,&nbsp;50,&nbsp;0.05);&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_x&nbsp;+=&nbsp;200;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_y&nbsp;+=&nbsp;200;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;顶点坐标&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;正弦线,余弦类似&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Movieclip.prototype.drawsin&nbsp;=&nbsp;function(n,&nbsp;k)&nbsp;{&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(var&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&lt;=90*n;&nbsp;i&nbsp;+=&nbsp;1)&nbsp;{&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.lineTo(x=i,&nbsp;y=k*Math.sin(i*Math.PI/180));&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.linestyle(1);&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_root.cr&#101;ateEmptyMovieClip(&#34;sin&#34;,&nbsp;101);&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;with&nbsp;(sin)&nbsp;{&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;drawsin(4,&nbsp;50);&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_x&nbsp;+=&nbsp;200;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_y&nbsp;+=&nbsp;200;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;顶点坐标&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Movieclip.prototype.drawwave&nbsp;=&nbsp;function(w,&nbsp;h)&nbsp;{&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(var&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&lt;=6.3;&nbsp;i&nbsp;+=&nbsp;0.01)&nbsp;{&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.lineTo(x=w/Math.cos(i),&nbsp;y=h*Math.sin(i)/Math.cos(i));&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.linestyle(1);&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_root.cr&#101;ateEmptyMovieClip(&#34;wave&#34;,&nbsp;105);&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;with&nbsp;(wave)&nbsp;{&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;drawwave(100,&nbsp;100);&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_x&nbsp;+=&nbsp;200;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_y&nbsp;+=&nbsp;200;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//&nbsp;顶点坐标&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>一个动态文本设置alpha函数。&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;function&nbsp;setAlpha(obj,alpha){&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;rgb=&#34;0x&#34;+(255*(100-alpha)/100).toString(16);&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rgb=rgb&lt;&lt;16|rgb&lt;&lt;8|rgb;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;obj.backgroundColor|=rgb;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;obj.borderColor|=rgb;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;obj.textColor|=rgb;&nbsp;}&nbsp;<br/>&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>一个遍历level0中所有MC的instance&nbsp;name的函数。（可以修改一下用在其他范畴）&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/><br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;function&nbsp;readAllMC(){&nbsp;<br/>&nbsp;&nbsp;this.MCitem&nbsp;;&nbsp;<br/>&nbsp;&nbsp;for(what&nbsp;in&nbsp;_level0){&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;if(typeof(_level0[what])==&#34;movieclip&#34;){&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;this.MCitem[what]&nbsp;=&nbsp;_level0[what];&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br/>&nbsp;&nbsp;}&nbsp;<br/>&nbsp;&nbsp;}&nbsp;<br/>&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;<br/>&nbsp;<br/>&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;设置MovieClip颜色：&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;MovieClip.prototype.setColor&nbsp;=&nbsp;function(c_color)&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;mycolor&nbsp;=&nbsp;new&nbsp;Color(this);&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;mycolor.setRGB(c_color);&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;};&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//调用：&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;yourMovieClip.setColor(0xff0000);&nbsp;<br/>&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;怎样设as，拒绝影片被人用loadMovie导入&nbsp;<br/>&nbsp;以下as一定要设在最上层桢动作第一行有效&nbsp;<br/>&nbsp;_root._name&nbsp;=&nbsp;&#34;nn&#34;;&nbsp;<br/>&nbsp;this.onEnterFrame&nbsp;=&nbsp;function()&nbsp;{&nbsp;<br/>&nbsp;&nbsp;if&nbsp;(this._name&nbsp;!=&nbsp;&#34;nn&#34;&nbsp;||&nbsp;_root.getDepth()&nbsp;!=&nbsp;-16384)&nbsp;{&nbsp;<br/>&nbsp;&nbsp;&nbsp;this.unloadMovie();&nbsp;<br/>&nbsp;&nbsp;}&nbsp;<br/>&nbsp;};&nbsp;<br/><br/><br/><br/>关于导入电影的几点<br/>1，禁止导入电影，写在第一贞上<br/>_root._name&nbsp;=&nbsp;&#34;nn&#34;;<br/>this.onEnterFrame&nbsp;=&nbsp;function()&nbsp;{<br/>&nbsp;if&nbsp;(this._name&nbsp;!=&nbsp;&#34;nn&#34;&nbsp;||&nbsp;_root.getDepth()&nbsp;!=&nbsp;-16384)&nbsp;{<br/>&nbsp;&nbsp;this.unloadMovie();<br/>&nbsp;}<br/>};<br/>2，只能导入，不能直接播放<br/>_root.onLoad&nbsp;=&nbsp;function()&nbsp;{<br/>&nbsp;if&nbsp;(this._level&nbsp;==&nbsp;_level0&nbsp;||&nbsp;_parent&nbsp;==&nbsp;undefined)&nbsp;{<br/>&nbsp;&nbsp;loadMovieNum(&#34;&#34;,&nbsp;0);<br/>&nbsp;}<br/>};<br/>3，导入完毕，控制电影属性，设导入电影剪辑mc中<br/>_root.onEnterframe=function(){<br/>if(mc._width!=0){<br/>所设属性<br/>}<br/>}<br/>4，使导入的图片在一定大小<br/>onClipEvent&nbsp;(load)&nbsp;{&nbsp;<br/>&nbsp;&nbsp;this._width=288;&nbsp;<br/>&nbsp;&nbsp;this._height=209;&nbsp;<br/>&nbsp;&nbsp;if(this._width&gt;288&nbsp;||&nbsp;this._height&gt;209){&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;scalew=this._width/288;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;scaleh=this._height/209;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(scalew&gt;scaleh){&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this._height=288/this._width*this._height;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this._width=288;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}else{&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this._width=209/this._height*this._width;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this._height=209;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<br/>&nbsp;&nbsp;}&nbsp;<br/>5，导入的电影无限循环播放<br/>var&nbsp;jilu<br/>function&nbsp;xh()&nbsp;{<br/>&nbsp;if&nbsp;(mc._width&nbsp;!=&nbsp;0)&nbsp;{<br/>&nbsp;&nbsp;if&nbsp;(mc._currentframe&nbsp;==&nbsp;jilu)&nbsp;{<br/>&nbsp;&nbsp;&nbsp;_root.mc.gotoAndPlay(mc._currentframe+1);<br/>&nbsp;&nbsp;}<br/>&nbsp;&nbsp;jilu&nbsp;=&nbsp;mc._currentframe;<br/>&nbsp;}<br/>&nbsp;if&nbsp;(mc._currentframe&gt;=mc._totalframes)&nbsp;{<br/>&nbsp;&nbsp;mc.gotoAndPlay(1);<br/>&nbsp;}<br/>}<br/>on&nbsp;(press)&nbsp;{<br/>&nbsp;setInterval(_root.xh,&nbsp;1000/12);<br/>}<br/>6,电影&nbsp;的快进<br/>var&nbsp;nn<br/>function&nbsp;kuai()&nbsp;{<br/>&nbsp;if&nbsp;(mc._width&nbsp;!=&nbsp;0&nbsp;&amp;&amp;&nbsp;mc._currentframe&nbsp;&nbsp;nn&nbsp;=&nbsp;Math.floor(mc._totalframes/200);<br/>&nbsp;&nbsp;mc.gotoAndStop(mc._currentframe+nn);<br/>&nbsp;&nbsp;if&nbsp;((mc._totalframes-mc._currentframe)&nbsp;&nbsp;&nbsp;mc.gotoAndStop(mc._totalframes);<br/>&nbsp;&nbsp;}<br/>&nbsp;}<br/>}<br/>on&nbsp;(press)&nbsp;{<br/>setInterval(_root.kuai,&nbsp;1000/12);<br/>}<br/>7,导入mp3的淡隐，淡出<br/>//soundin<br/>function&nbsp;soundin()&nbsp;{<br/>&nbsp;sound1&nbsp;=&nbsp;setInterval(soundcontrol,&nbsp;30,&nbsp;true);<br/>}<br/>//soundout<br/>var&nbsp;yy<br/>function&nbsp;soundout()&nbsp;{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;yy=1<br/>&nbsp;sound1&nbsp;=&nbsp;setInterval(soundcontrol,&nbsp;30,&nbsp;false);<br/>}<br/>//soundcontrol<br/>var&nbsp;sounding<br/>function&nbsp;soundcontrol(gg)&nbsp;{<br/>&nbsp;if&nbsp;(mysound.getVolume()&gt;0&nbsp;&amp;&amp;&nbsp;gg&nbsp;==&nbsp;false&nbsp;&amp;&amp;&nbsp;yy&nbsp;==&nbsp;1)&nbsp;{<br/>&nbsp;&nbsp;mysound.setVolume((mysound.getVolume()-1));<br/>&nbsp;}&nbsp;else&nbsp;if&nbsp;(mysound.getVolume()&lt;=0&nbsp;&amp;&amp;&nbsp;gg&nbsp;==&nbsp;false&nbsp;&amp;&amp;&nbsp;yy&nbsp;==&nbsp;1)&nbsp;{<br/>&nbsp;&nbsp;&nbsp;sounding&nbsp;=&nbsp;mysound.position;<br/>&nbsp;&nbsp;&nbsp;mysound.stop();<br/>&nbsp;&nbsp;&nbsp;clearInterval(sound1);<br/>&nbsp;&nbsp;}<br/>&nbsp;}<br/>&nbsp;if&nbsp;(mysound.getVolume()&lt;100&nbsp;&amp;&amp;&nbsp;gg&nbsp;==&nbsp;true&nbsp;&amp;&amp;&nbsp;yy&nbsp;==&nbsp;0)&nbsp;{<br/>&nbsp;&nbsp;mysound.setVolume((mysound.getVolume()+1));<br/>&nbsp;}&nbsp;else&nbsp;if&nbsp;(mysound.getVolume()&nbsp;==&nbsp;100&nbsp;&amp;&amp;&nbsp;gg&nbsp;==&nbsp;true&nbsp;&amp;&amp;&nbsp;yy&nbsp;==&nbsp;0)&nbsp;{<br/>&nbsp;&nbsp;clearInterval(sound1);<br/>&nbsp;}<br/>}<br/>8，随机导入<br/>Array.prototype.get&nbsp;=&nbsp;function()&nbsp;{<br/>&nbsp;var&nbsp;h1&nbsp;=&nbsp;this.slice(0,&nbsp;-1);<br/>&nbsp;var&nbsp;i1&nbsp;=&nbsp;random(h1.length);<br/>&nbsp;var&nbsp;xx&nbsp;=&nbsp;h1[i1];<br/>&nbsp;this.splice(i1,&nbsp;1);<br/>&nbsp;this.push(xx);<br/>&nbsp;return&nbsp;xx;<br/>};<br/>hh&nbsp;=&nbsp;[&#34;mc1.swf&#34;,&nbsp;&#34;mc2.swf&#34;,&nbsp;&#34;mc3.swf&#34;,&nbsp;&#34;mc4.swf&#34;,&nbsp;&#34;mc5.swf&#34;,&nbsp;&#34;mc6.swf&#34;];<br/>mymc&nbsp;=&nbsp;hh.get();<br/>loadMovieNum(mymc,&nbsp;1);<br/><br/><br/>flash中数组的妙用<br/>在flash中有一个random函数。它可以随机产生出一个0-1之间的数字，我们可以通过这个函数与数组相结合，非常简便地实现对一组对象的穷举。<br/>temp_array&nbsp;=&nbsp;new&nbsp;Array();<br/>for&nbsp;(i=0;&nbsp;i&lt;100;&nbsp;i++)&nbsp;{<br/>temp_array[i]&nbsp;=&nbsp;i;<br/>}<br/>while&nbsp;(temp_array.length&gt;1)&nbsp;{<br/>trace(temp_array);<br/>trace(temp_array.splice(int(Math.random()*temp_array.length),&nbsp;1));<br/>}<br/><br/><br/>FLASH改变网页背景颜色<br/><br/><br/><br/>flash按钮上的:<br/>on&nbsp;(release)<br/>{<br/>getURL(&#34;javascript:changeBgColor(\&#39;#96CC45\&#39;)&#34;,&nbsp;&#34;&#34;;<br/>}<br/>FLASH改变网页背景图片<br/>修改一下函数就可以了！<br/>]]></description>
		</item>
		
			<item>
			<link>http://www.loverer.com/default.asp?id=342</link>
			<title><![CDATA[FCS多服务器负载均衡的解决方案]]></title>
			<author>ctv0071#hotmail.com(ym110)</author>
			<category><![CDATA[P2P&amp;FMS]]></category>
			<pubDate>Tue,16 Oct 2007 18:07:19 +0800</pubDate>
			<guid>http://www.loverer.com/default.asp?id=342</guid>	
		<description><![CDATA[<div class="STYLE9" align="left"><font color="#000000"><span id="zoom">因为FCS服务器的带宽消耗很厉害，要在多个FCS服务器之间实现负载均衡是比较麻烦的事情，Peldi的几篇文章很不错，可以借鉴下。真的很不错的思路，不愧是FCS的老祖，呵呵～<br />Peldi的例子可以了解哪个FCS服务器当前是可用的，一共使用了三个服务器端文件。详细使用请参考相关代码～<br /><span style="COLOR: royalblue">1. 在每个FCS节点服务器上运行，连接到主控服务器并且告诉&ldquo;我在这里&rdquo;</span><br />[ <a href="http://www.peldi.com/blog/archives/2005/01/which_nodes_are.html" target="_blank"><font color="#993366">节点代码参考</font></a> ]<br /><span style="COLOR: royalblue">2. 运行在主控服务器，通过getNodesTable 方法来获取可用的节点列表</span><br />[ <a href="http://www.peldi.com/blog/archives/2005/01/which_nodes_are_1.html" target="_blank"><font color="#993366">主控代码参考</font></a> ]<br /><span style="COLOR: royalblue">3. 负责分发应用程序并且调用getNOdesTables方法来获悉哪个节点可用，最后还要做的事情是根据负载均衡的法则来选择一个节点</span><br />[ <a href="http://www.peldi.com/blog/archives/2005/01/which_nodes_are_2.html" target="_blank"><font color="#993366">测试代码参考</font></a> ]<br /><br />PS：两个很不错的FlashCom应用网站<br />[ <a href="http://vidcards.emakina.com/" target="_blank"><font color="#993366">http://vidcards.emakina.com/</font></a> ]<br />[ <a href="http://www.vego.be/" target="_blank"><font color="#993366">http://www.vego.be/</font></a> ]</span></font></div>]]></description>
		</item>
		
			<item>
			<link>http://www.loverer.com/default.asp?id=341</link>
			<title><![CDATA[FMS文件加密方法（转）]]></title>
			<author>ctv0071#hotmail.com(ym110)</author>
			<category><![CDATA[P2P&amp;FMS]]></category>
			<pubDate>Tue,16 Oct 2007 18:05:39 +0800</pubDate>
			<guid>http://www.loverer.com/default.asp?id=341</guid>	
		<description><![CDATA[function&nbsp;md5(s)<br/>{<br/>return(binl2hex(core_md5(str2binl(s),&nbsp;s.length&nbsp;*&nbsp;strsize)));<br/>}&nbsp;//&nbsp;End&nbsp;of&nbsp;the&nbsp;function<br/>function&nbsp;b64_md5(s)<br/>{<br/>return(binl2b64(core_md5(str2binl(s),&nbsp;s.length&nbsp;*&nbsp;strsize)));<br/>}&nbsp;//&nbsp;End&nbsp;of&nbsp;the&nbsp;function<br/>function&nbsp;str_md5(s)<br/>{<br/>return(binl2str(core_md5(str2binl(s),&nbsp;s.length&nbsp;*&nbsp;strsize)));<br/>}&nbsp;//&nbsp;End&nbsp;of&nbsp;the&nbsp;function<br/>function&nbsp;hex_hmac_md5(key,&nbsp;data)<br/>{<br/>return(binl2hex(core_hmac_md5(key,&nbsp;data)));<br/>}&nbsp;//&nbsp;End&nbsp;of&nbsp;the&nbsp;function<br/>function&nbsp;b64_hmac_md5(key,&nbsp;data)<br/>{<br/>return(binl2b64(core_hmac_md5(key,&nbsp;data)));<br/>}&nbsp;//&nbsp;End&nbsp;of&nbsp;the&nbsp;function<br/>function&nbsp;str_hmac_md5(key,&nbsp;data)<br/>{<br/>return(binl2str(core_hmac_md5(key,&nbsp;data)));<br/>}&nbsp;//&nbsp;End&nbsp;of&nbsp;the&nbsp;function<br/>function&nbsp;core_md5(x,&nbsp;len)<br/>{<br/>x[len&nbsp;&gt;&gt;&nbsp;5]&nbsp;=&nbsp;x[len&nbsp;&gt;&gt;&nbsp;5]&nbsp;|&nbsp;128&nbsp;&lt;&lt;&nbsp;len&nbsp;%&nbsp;32;<br/>x[(len&nbsp;+&nbsp;64&nbsp;&gt;&gt;&gt;&nbsp;9&nbsp;&lt;&lt;&nbsp;4)&nbsp;+&nbsp;14]&nbsp;=&nbsp;len;<br/>var&nbsp;a&nbsp;=&nbsp;1732584193;<br/>var&nbsp;_l3&nbsp;=&nbsp;-271733879;<br/>var&nbsp;_l2&nbsp;=&nbsp;-1732584194;<br/>var&nbsp;_l1&nbsp;=&nbsp;271733878;<br/>var&nbsp;i&nbsp;=&nbsp;0;<br/>while&nbsp;(i&nbsp;&lt;&nbsp;x.length)<br/>{<br/>var&nbsp;olda&nbsp;=&nbsp;a;<br/>var&nbsp;oldb&nbsp;=&nbsp;_l3;<br/>var&nbsp;oldc&nbsp;=&nbsp;_l2;<br/>var&nbsp;oldd&nbsp;=&nbsp;_l1;<br/>a&nbsp;=&nbsp;md5_ff(a,&nbsp;_l3,&nbsp;_l2,&nbsp;_l1,&nbsp;x[i&nbsp;+&nbsp;0],&nbsp;7,&nbsp;-680876936);<br/>_l1&nbsp;=&nbsp;md5_ff(_l1,&nbsp;a,&nbsp;_l3,&nbsp;_l2,&nbsp;x[i&nbsp;+&nbsp;1],&nbsp;12,&nbsp;-389564586);<br/>_l2&nbsp;=&nbsp;md5_ff(_l2,&nbsp;_l1,&nbsp;a,&nbsp;_l3,&nbsp;x[i&nbsp;+&nbsp;2],&nbsp;17,&nbsp;606105819);<br/>_l3&nbsp;=&nbsp;md5_ff(_l3,&nbsp;_l2,&nbsp;_l1,&nbsp;a,&nbsp;x[i&nbsp;+&nbsp;3],&nbsp;22,&nbsp;-1044525330);<br/>a&nbsp;=&nbsp;md5_ff(a,&nbsp;_l3,&nbsp;_l2,&nbsp;_l1,&nbsp;x[i&nbsp;+&nbsp;4],&nbsp;7,&nbsp;-176418897);<br/>_l1&nbsp;=&nbsp;md5_ff(_l1,&nbsp;a,&nbsp;_l3,&nbsp;_l2,&nbsp;x[i&nbsp;+&nbsp;5],&nbsp;12,&nbsp;1200080426);<br/>_l2&nbsp;=&nbsp;md5_ff(_l2,&nbsp;_l1,&nbsp;a,&nbsp;_l3,&nbsp;x[i&nbsp;+&nbsp;6],&nbsp;17,&nbsp;-1473231341);<br/>_l3&nbsp;=&nbsp;md5_ff(_l3,&nbsp;_l2,&nbsp;_l1,&nbsp;a,&nbsp;x[i&nbsp;+&nbsp;7],&nbsp;22,&nbsp;-45705983);<br/>a&nbsp;=&nbsp;md5_ff(a,&nbsp;_l3,&nbsp;_l2,&nbsp;_l1,&nbsp;x[i&nbsp;+&nbsp;8],&nbsp;7,&nbsp;1770035416);<br/>_l1&nbsp;=&nbsp;md5_ff(_l1,&nbsp;a,&nbsp;_l3,&nbsp;_l2,&nbsp;x[i&nbsp;+&nbsp;9],&nbsp;12,&nbsp;-1958414417);<br/>_l2&nbsp;=&nbsp;md5_ff(_l2,&nbsp;_l1,&nbsp;a,&nbsp;_l3,&nbsp;x[i&nbsp;+&nbsp;10],&nbsp;17,&nbsp;-42063);<br/>_l3&nbsp;=&nbsp;md5_ff(_l3,&nbsp;_l2,&nbsp;_l1,&nbsp;a,&nbsp;x[i&nbsp;+&nbsp;11],&nbsp;22,&nbsp;-1990404162);<br/>a&nbsp;=&nbsp;md5_ff(a,&nbsp;_l3,&nbsp;_l2,&nbsp;_l1,&nbsp;x[i&nbsp;+&nbsp;12],&nbsp;7,&nbsp;1804603682);<br/>_l1&nbsp;=&nbsp;md5_ff(_l1,&nbsp;a,&nbsp;_l3,&nbsp;_l2,&nbsp;x[i&nbsp;+&nbsp;13],&nbsp;12,&nbsp;-40341101);<br/>_l2&nbsp;=&nbsp;md5_ff(_l2,&nbsp;_l1,&nbsp;a,&nbsp;_l3,&nbsp;x[i&nbsp;+&nbsp;14],&nbsp;17,&nbsp;-1502002290);<br/>_l3&nbsp;=&nbsp;md5_ff(_l3,&nbsp;_l2,&nbsp;_l1,&nbsp;a,&nbsp;x[i&nbsp;+&nbsp;15],&nbsp;22,&nbsp;1236535329);<br/>a&nbsp;=&nbsp;md5_gg(a,&nbsp;_l3,&nbsp;_l2,&nbsp;_l1,&nbsp;x[i&nbsp;+&nbsp;1],&nbsp;5,&nbsp;-165796510);<br/>_l1&nbsp;=&nbsp;md5_gg(_l1,&nbsp;a,&nbsp;_l3,&nbsp;_l2,&nbsp;x[i&nbsp;+&nbsp;6],&nbsp;9,&nbsp;-1069501632);<br/>_l2&nbsp;=&nbsp;md5_gg(_l2,&nbsp;_l1,&nbsp;a,&nbsp;_l3,&nbsp;x[i&nbsp;+&nbsp;11],&nbsp;14,&nbsp;643717713);<br/>_l3&nbsp;=&nbsp;md5_gg(_l3,&nbsp;_l2,&nbsp;_l1,&nbsp;a,&nbsp;x[i&nbsp;+&nbsp;0],&nbsp;20,&nbsp;-373897302);<br/>a&nbsp;=&nbsp;md5_gg(a,&nbsp;_l3,&nbsp;_l2,&nbsp;_l1,&nbsp;x[i&nbsp;+&nbsp;5],&nbsp;5,&nbsp;-701558691);<br/>_l1&nbsp;=&nbsp;md5_gg(_l1,&nbsp;a,&nbsp;_l3,&nbsp;_l2,&nbsp;x[i&nbsp;+&nbsp;10],&nbsp;9,&nbsp;38016083);<br/>_l2&nbsp;=&nbsp;md5_gg(_l2,&nbsp;_l1,&nbsp;a,&nbsp;_l3,&nbsp;x[i&nbsp;+&nbsp;15],&nbsp;14,&nbsp;-660478335);<br/>_l3&nbsp;=&nbsp;md5_gg(_l3,&nbsp;_l2,&nbsp;_l1,&nbsp;a,&nbsp;x[i&nbsp;+&nbsp;4],&nbsp;20,&nbsp;-405537848);<br/>a&nbsp;=&nbsp;md5_gg(a,&nbsp;_l3,&nbsp;_l2,&nbsp;_l1,&nbsp;x[i&nbsp;+&nbsp;9],&nbsp;5,&nbsp;568446438);<br/>_l1&nbsp;=&nbsp;md5_gg(_l1,&nbsp;a,&nbsp;_l3,&nbsp;_l2,&nbsp;x[i&nbsp;+&nbsp;14],&nbsp;9,&nbsp;-1019803690);<br/>_l2&nbsp;=&nbsp;md5_gg(_l2,&nbsp;_l1,&nbsp;a,&nbsp;_l3,&nbsp;x[i&nbsp;+&nbsp;3],&nbsp;14,&nbsp;-187363961);<br/>_l3&nbsp;=&nbsp;md5_gg(_l3,&nbsp;_l2,&nbsp;_l1,&nbsp;a,&nbsp;x[i&nbsp;+&nbsp;8],&nbsp;20,&nbsp;1163531501);<br/>a&nbsp;=&nbsp;md5_gg(a,&nbsp;_l3,&nbsp;_l2,&nbsp;_l1,&nbsp;x[i&nbsp;+&nbsp;13],&nbsp;5,&nbsp;-1444681467);<br/>_l1&nbsp;=&nbsp;md5_gg(_l1,&nbsp;a,&nbsp;_l3,&nbsp;_l2,&nbsp;x[i&nbsp;+&nbsp;2],&nbsp;9,&nbsp;-51403784);<br/>_l2&nbsp;=&nbsp;md5_gg(_l2,&nbsp;_l1,&nbsp;a,&nbsp;_l3,&nbsp;x[i&nbsp;+&nbsp;7],&nbsp;14,&nbsp;1735328473);<br/>_l3&nbsp;=&nbsp;md5_gg(_l3,&nbsp;_l2,&nbsp;_l1,&nbsp;a,&nbsp;x[i&nbsp;+&nbsp;12],&nbsp;20,&nbsp;-1926607734);<br/>a&nbsp;=&nbsp;md5_hh(a,&nbsp;_l3,&nbsp;_l2,&nbsp;_l1,&nbsp;x[i&nbsp;+&nbsp;5],&nbsp;4,&nbsp;-378558);<br/>_l1&nbsp;=&nbsp;md5_hh(_l1,&nbsp;a,&nbsp;_l3,&nbsp;_l2,&nbsp;x[i&nbsp;+&nbsp;8],&nbsp;11,&nbsp;-2022574463);<br/>_l2&nbsp;=&nbsp;md5_hh(_l2,&nbsp;_l1,&nbsp;a,&nbsp;_l3,&nbsp;x[i&nbsp;+&nbsp;11],&nbsp;16,&nbsp;1839030562);<br/>_l3&nbsp;=&nbsp;md5_hh(_l3,&nbsp;_l2,&nbsp;_l1,&nbsp;a,&nbsp;x[i&nbsp;+&nbsp;14],&nbsp;23,&nbsp;-35309556);<br/>a&nbsp;=&nbsp;md5_hh(a,&nbsp;_l3,&nbsp;_l2,&nbsp;_l1,&nbsp;x[i&nbsp;+&nbsp;1],&nbsp;4,&nbsp;-1530992060);<br/>_l1&nbsp;=&nbsp;md5_hh(_l1,&nbsp;a,&nbsp;_l3,&nbsp;_l2,&nbsp;x[i&nbsp;+&nbsp;4],&nbsp;11,&nbsp;1272893353);<br/>_l2&nbsp;=&nbsp;md5_hh(_l2,&nbsp;_l1,&nbsp;a,&nbsp;_l3,&nbsp;x[i&nbsp;+&nbsp;7],&nbsp;16,&nbsp;-155497632);<br/>_l3&nbsp;=&nbsp;md5_hh(_l3,&nbsp;_l2,&nbsp;_l1,&nbsp;a,&nbsp;x[i&nbsp;+&nbsp;10],&nbsp;23,&nbsp;-1094730640);<br/>a&nbsp;=&nbsp;md5_hh(a,&nbsp;_l3,&nbsp;_l2,&nbsp;_l1,&nbsp;x[i&nbsp;+&nbsp;13],&nbsp;4,&nbsp;681279174);<br/>_l1&nbsp;=&nbsp;md5_hh(_l1,&nbsp;a,&nbsp;_l3,&nbsp;_l2,&nbsp;x[i&nbsp;+&nbsp;0],&nbsp;11,&nbsp;-358537222);<br/>_l2&nbsp;=&nbsp;md5_hh(_l2,&nbsp;_l1,&nbsp;a,&nbsp;_l3,&nbsp;x[i&nbsp;+&nbsp;3],&nbsp;16,&nbsp;-722521979);<br/>_l3&nbsp;=&nbsp;md5_hh(_l3,&nbsp;_l2,&nbsp;_l1,&nbsp;a,&nbsp;x[i&nbsp;+&nbsp;6],&nbsp;23,&nbsp;76029189);<br/>a&nbsp;=&nbsp;md5_hh(a,&nbsp;_l3,&nbsp;_l2,&nbsp;_l1,&nbsp;x[i&nbsp;+&nbsp;9],&nbsp;4,&nbsp;-640364487);<br/>_l1&nbsp;=&nbsp;md5_hh(_l1,&nbsp;a,&nbsp;_l3,&nbsp;_l2,&nbsp;x[i&nbsp;+&nbsp;12],&nbsp;11,&nbsp;-421815835);<br/>_l2&nbsp;=&nbsp;md5_hh(_l2,&nbsp;_l1,&nbsp;a,&nbsp;_l3,&nbsp;x[i&nbsp;+&nbsp;15],&nbsp;16,&nbsp;530742520);<br/>_l3&nbsp;=&nbsp;md5_hh(_l3,&nbsp;_l2,&nbsp;_l1,&nbsp;a,&nbsp;x[i&nbsp;+&nbsp;2],&nbsp;23,&nbsp;-995338651);<br/>a&nbsp;=&nbsp;md5_ii(a,&nbsp;_l3,&nbsp;_l2,&nbsp;_l1,&nbsp;x[i&nbsp;+&nbsp;0],&nbsp;6,&nbsp;-198630844);<br/>_l1&nbsp;=&nbsp;md5_ii(_l1,&nbsp;a,&nbsp;_l3,&nbsp;_l2,&nbsp;x[i&nbsp;+&nbsp;7],&nbsp;10,&nbsp;1126891415);<br/>_l2&nbsp;=&nbsp;md5_ii(_l2,&nbsp;_l1,&nbsp;a,&nbsp;_l3,&nbsp;x[i&nbsp;+&nbsp;14],&nbsp;15,&nbsp;-1416354905);<br/>_l3&nbsp;=&nbsp;md5_ii(_l3,&nbsp;_l2,&nbsp;_l1,&nbsp;a,&nbsp;x[i&nbsp;+&nbsp;5],&nbsp;21,&nbsp;-57434055);<br/>a&nbsp;=&nbsp;md5_ii(a,&nbsp;_l3,&nbsp;_l2,&nbsp;_l1,&nbsp;x[i&nbsp;+&nbsp;12],&nbsp;6,&nbsp;1700485571);<br/>_l1&nbsp;=&nbsp;md5_ii(_l1,&nbsp;a,&nbsp;_l3,&nbsp;_l2,&nbsp;x[i&nbsp;+&nbsp;3],&nbsp;10,&nbsp;-1894986606);<br/>_l2&nbsp;=&nbsp;md5_ii(_l2,&nbsp;_l1,&nbsp;a,&nbsp;_l3,&nbsp;x[i&nbsp;+&nbsp;10],&nbsp;15,&nbsp;-1051523);<br/>_l3&nbsp;=&nbsp;md5_ii(_l3,&nbsp;_l2,&nbsp;_l1,&nbsp;a,&nbsp;x[i&nbsp;+&nbsp;1],&nbsp;21,&nbsp;-2054922799);<br/>a&nbsp;=&nbsp;md5_ii(a,&nbsp;_l3,&nbsp;_l2,&nbsp;_l1,&nbsp;x[i&nbsp;+&nbsp;8],&nbsp;6,&nbsp;1873313359);<br/>_l1&nbsp;=&nbsp;md5_ii(_l1,&nbsp;a,&nbsp;_l3,&nbsp;_l2,&nbsp;x[i&nbsp;+&nbsp;15],&nbsp;10,&nbsp;-30611744);<br/>_l2&nbsp;=&nbsp;md5_ii(_l2,&nbsp;_l1,&nbsp;a,&nbsp;_l3,&nbsp;x[i&nbsp;+&nbsp;6],&nbsp;15,&nbsp;-1560198380);<br/>_l3&nbsp;=&nbsp;md5_ii(_l3,&nbsp;_l2,&nbsp;_l1,&nbsp;a,&nbsp;x[i&nbsp;+&nbsp;13],&nbsp;21,&nbsp;1309151649);<br/>a&nbsp;=&nbsp;md5_ii(a,&nbsp;_l3,&nbsp;_l2,&nbsp;_l1,&nbsp;x[i&nbsp;+&nbsp;4],&nbsp;6,&nbsp;-145523070);<br/>_l1&nbsp;=&nbsp;md5_ii(_l1,&nbsp;a,&nbsp;_l3,&nbsp;_l2,&nbsp;x[i&nbsp;+&nbsp;11],&nbsp;10,&nbsp;-1120210379);<br/>_l2&nbsp;=&nbsp;md5_ii(_l2,&nbsp;_l1,&nbsp;a,&nbsp;_l3,&nbsp;x[i&nbsp;+&nbsp;2],&nbsp;15,&nbsp;718787259);<br/>_l3&nbsp;=&nbsp;md5_ii(_l3,&nbsp;_l2,&nbsp;_l1,&nbsp;a,&nbsp;x[i&nbsp;+&nbsp;9],&nbsp;21,&nbsp;-343485551);<br/>a&nbsp;=&nbsp;safe_add(a,&nbsp;olda);<br/>_l3&nbsp;=&nbsp;safe_add(_l3,&nbsp;oldb);<br/>_l2&nbsp;=&nbsp;safe_add(_l2,&nbsp;oldc);<br/>_l1&nbsp;=&nbsp;safe_add(_l1,&nbsp;oldd);<br/>i&nbsp;=&nbsp;i&nbsp;+&nbsp;16;<br/>}&nbsp;//&nbsp;end&nbsp;while<br/>Array(a,&nbsp;_l3,&nbsp;_l2,&nbsp;_l1);<br/>return(Array(a,&nbsp;_l3,&nbsp;_l2,&nbsp;_l1));<br/>}&nbsp;//&nbsp;End&nbsp;of&nbsp;the&nbsp;function<br/>function&nbsp;md5_cmn(q,&nbsp;a,&nbsp;b,&nbsp;x,&nbsp;s,&nbsp;t)<br/>{<br/>return(safe_add(bit_rol(safe_add(safe_add(a,&nbsp;q),&nbsp;safe_add(x,&nbsp;t)),&nbsp;s),&nbsp;b));<br/>}&nbsp;//&nbsp;End&nbsp;of&nbsp;the&nbsp;function<br/>function&nbsp;md5_ff(a,&nbsp;b,&nbsp;c,&nbsp;d,&nbsp;x,&nbsp;s,&nbsp;t)<br/>{<br/>var&nbsp;_l1&nbsp;=&nbsp;b;<br/>md5_cmn(_l1&nbsp;&amp;&nbsp;c&nbsp;|&nbsp;(_l1&nbsp;^&nbsp;4294967295.000000)&nbsp;&amp;&nbsp;d,&nbsp;a,&nbsp;_l1,&nbsp;x,&nbsp;s,&nbsp;t);<br/>return(md5_cmn(_l1&nbsp;&amp;&nbsp;c&nbsp;|&nbsp;(_l1&nbsp;^&nbsp;4294967295.000000)&nbsp;&amp;&nbsp;d,&nbsp;a,&nbsp;_l1,&nbsp;x,&nbsp;s,&nbsp;t));<br/>}&nbsp;//&nbsp;End&nbsp;of&nbsp;the&nbsp;function<br/>function&nbsp;md5_gg(a,&nbsp;b,&nbsp;c,&nbsp;d,&nbsp;x,&nbsp;s,&nbsp;t)<br/>{<br/>return(md5_cmn(b&nbsp;&amp;&nbsp;d&nbsp;|&nbsp;c&nbsp;&amp;&nbsp;(d&nbsp;^&nbsp;4294967295.000000),&nbsp;a,&nbsp;b,&nbsp;x,&nbsp;s,&nbsp;t));<br/>}&nbsp;//&nbsp;End&nbsp;of&nbsp;the&nbsp;function<br/>function&nbsp;md5_hh(a,&nbsp;b,&nbsp;c,&nbsp;d,&nbsp;x,&nbsp;s,&nbsp;t)<br/>{<br/>return(md5_cmn(b&nbsp;^&nbsp;c&nbsp;^&nbsp;d,&nbsp;a,&nbsp;b,&nbsp;x,&nbsp;s,&nbsp;t));<br/>}&nbsp;//&nbsp;End&nbsp;of&nbsp;the&nbsp;function<br/>function&nbsp;md5_ii(a,&nbsp;b,&nbsp;c,&nbsp;d,&nbsp;x,&nbsp;s,&nbsp;t)<br/>{<br/>return(md5_cmn(c&nbsp;^&nbsp;(b&nbsp;|&nbsp;d&nbsp;^&nbsp;4294967295.000000),&nbsp;a,&nbsp;b,&nbsp;x,&nbsp;s,&nbsp;t));<br/>}&nbsp;//&nbsp;End&nbsp;of&nbsp;the&nbsp;function<br/>function&nbsp;core_hmac_md5(key,&nbsp;data)<br/>{<br/>var&nbsp;_l2&nbsp;=&nbsp;str2binl(key);<br/>if&nbsp;(_l2.length&nbsp;&gt;&nbsp;16)<br/>{<br/>_l2&nbsp;=&nbsp;core_md5(_l2,&nbsp;key.length&nbsp;*&nbsp;strsize);<br/>}&nbsp;//&nbsp;end&nbsp;if<br/>var&nbsp;_l3&nbsp;=&nbsp;Array(16);<br/>var&nbsp;opad&nbsp;=&nbsp;Array(16);<br/>var&nbsp;_l1&nbsp;=&nbsp;0;<br/>while&nbsp;(_l1&nbsp;&lt;&nbsp;16)<br/>{<br/>_l3[_l1]&nbsp;=&nbsp;_l2[_l1]&nbsp;^&nbsp;909522486;<br/>opad[_l1]&nbsp;=&nbsp;_l2[_l1]&nbsp;^&nbsp;1549556828;<br/>_l1++;<br/>}&nbsp;//&nbsp;end&nbsp;while<br/>var&nbsp;hash&nbsp;=&nbsp;core_md5(_l3.concat(str2binl(data)),&nbsp;512&nbsp;+&nbsp;data.length&nbsp;*&nbsp;strsize);<br/>core_md5(opad.concat(hash),&nbsp;640);<br/>return(core_md5(opad.concat(hash),&nbsp;640));<br/>}&nbsp;//&nbsp;End&nbsp;of&nbsp;the&nbsp;function<br/>function&nbsp;safe_add(x,&nbsp;y)<br/>{<br/>var&nbsp;_l1&nbsp;=&nbsp;(x&nbsp;&amp;&nbsp;65535)&nbsp;+&nbsp;(y&nbsp;&amp;&nbsp;65535);<br/>var&nbsp;_l2&nbsp;=&nbsp;(x&nbsp;&gt;&gt;&nbsp;16)&nbsp;+&nbsp;(y&nbsp;&gt;&gt;&nbsp;16)&nbsp;+&nbsp;(_l1&nbsp;&gt;&gt;&nbsp;16);<br/>_l2&nbsp;&lt;&lt;&nbsp;16&nbsp;|&nbsp;_l1&nbsp;&amp;&nbsp;65535;<br/>return(_l2&nbsp;&lt;&lt;&nbsp;16&nbsp;|&nbsp;_l1&nbsp;&amp;&nbsp;65535);<br/>}&nbsp;//&nbsp;End&nbsp;of&nbsp;the&nbsp;function<br/>function&nbsp;bit_rol(num,&nbsp;cnt)<br/>{<br/>return(num&nbsp;&lt;&lt;&nbsp;cnt&nbsp;|&nbsp;num&nbsp;&gt;&gt;&gt;&nbsp;32&nbsp;-&nbsp;cnt);<br/>}&nbsp;//&nbsp;End&nbsp;of&nbsp;the&nbsp;function<br/>function&nbsp;str2binl(str)<br/>{<br/>var&nbsp;_l2&nbsp;=&nbsp;str;<br/>var&nbsp;_l3&nbsp;=&nbsp;Array();<br/>var&nbsp;mask&nbsp;=&nbsp;(1&nbsp;&lt;&lt;&nbsp;strsize)&nbsp;-&nbsp;1;<br/>var&nbsp;_l1&nbsp;=&nbsp;0;<br/>while&nbsp;(_l1&nbsp;&lt;&nbsp;_l2.length&nbsp;*&nbsp;strsize)<br/>{<br/>_l3[_l1&nbsp;&gt;&gt;&nbsp;5]&nbsp;=&nbsp;_l3[_l1&nbsp;&gt;&gt;&nbsp;5]&nbsp;|&nbsp;(_l2.charCodeAt(_l1&nbsp;/&nbsp;strsize)&nbsp;&amp;&nbsp;mask)&nbsp;&lt;&lt;&nbsp;_l1&nbsp;%&nbsp;32;<br/>_l1&nbsp;=&nbsp;_l1&nbsp;+&nbsp;strsize;<br/>}&nbsp;//&nbsp;end&nbsp;while<br/>return(_l3);<br/>}&nbsp;//&nbsp;End&nbsp;of&nbsp;the&nbsp;function<br/>function&nbsp;binl2str(bin)<br/>{<br/>var&nbsp;_l2&nbsp;=&nbsp;bin;<br/>var&nbsp;_l3&nbsp;=&nbsp;&#34;&#34;;<br/>var&nbsp;mask&nbsp;=&nbsp;(1&nbsp;&lt;&lt;&nbsp;strsize)&nbsp;-&nbsp;1;<br/>var&nbsp;_l1&nbsp;=&nbsp;0;<br/>while&nbsp;(_l1&nbsp;&lt;&nbsp;_l2.length&nbsp;*&nbsp;32)<br/>{<br/>_l3&nbsp;=&nbsp;_l3&nbsp;+&nbsp;String.fromCharCode(_l2[_l1&nbsp;&gt;&gt;&nbsp;5]&nbsp;&gt;&gt;&gt;&nbsp;_l1&nbsp;%&nbsp;32&nbsp;&amp;&nbsp;mask);<br/>_l1&nbsp;=&nbsp;_l1&nbsp;+&nbsp;strsize;<br/>}&nbsp;//&nbsp;end&nbsp;while<br/>return(_l3);<br/>}&nbsp;//&nbsp;End&nbsp;of&nbsp;the&nbsp;function<br/>function&nbsp;binl2hex(binarray)<br/>{<br/>var&nbsp;_l2&nbsp;=&nbsp;binarray;<br/>var&nbsp;_l3&nbsp;=&nbsp;hexcase&nbsp;?&nbsp;(&#34;0123456789ABCDEF&#34;)&nbsp;:&nbsp;(&#34;0123456789abcdef&#34;);<br/>var&nbsp;str&nbsp;=&nbsp;&#34;&#34;;<br/>var&nbsp;_l1&nbsp;=&nbsp;0;<br/>while&nbsp;(_l1&nbsp;&lt;&nbsp;_l2.length&nbsp;*&nbsp;4)<br/>{<br/>str&nbsp;=&nbsp;str&nbsp;+&nbsp;(_l3.charAt(_l2[_l1&nbsp;&gt;&gt;&nbsp;2]&nbsp;&gt;&gt;&nbsp;_l1&nbsp;%&nbsp;4&nbsp;*&nbsp;8&nbsp;+&nbsp;4&nbsp;&amp;&nbsp;15)&nbsp;+&nbsp;_l3.charAt(_l2[_l1&nbsp;&gt;&gt;&nbsp;2]&nbsp;&gt;&gt;&nbsp;_l1&nbsp;%&nbsp;4&nbsp;*&nbsp;8&nbsp;&amp;&nbsp;15));<br/>_l1++;<br/>}&nbsp;//&nbsp;end&nbsp;while<br/>str;<br/>return(str);<br/>}&nbsp;//&nbsp;End&nbsp;of&nbsp;the&nbsp;function<br/>function&nbsp;binl2b64(binarray)<br/>{<br/>var&nbsp;_l3&nbsp;=&nbsp;binarray;<br/>var&nbsp;tab&nbsp;=&nbsp;&#34;ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/&#34;;<br/>var&nbsp;str&nbsp;=&nbsp;&#34;&#34;;<br/>var&nbsp;_l2&nbsp;=&nbsp;0;<br/>while&nbsp;(_l2&nbsp;&lt;&nbsp;_l3.length&nbsp;*&nbsp;4)<br/>{<br/>var&nbsp;triplet&nbsp;=&nbsp;(_l3[_l2&nbsp;&gt;&gt;&nbsp;2]&nbsp;&gt;&gt;&nbsp;8&nbsp;*&nbsp;(_l2&nbsp;%&nbsp;4)&nbsp;&amp;&nbsp;255)&nbsp;&lt;&lt;&nbsp;16&nbsp;|&nbsp;(_l3[_l2&nbsp;+&nbsp;1&nbsp;&gt;&gt;&nbsp;2]&nbsp;&gt;&gt;&nbsp;8&nbsp;*&nbsp;((_l2&nbsp;+&nbsp;1)&nbsp;%&nbsp;4)&nbsp;&amp;&nbsp;255)&nbsp;&lt;&lt;&nbsp;8&nbsp;|&nbsp;_l3[_l2&nbsp;+&nbsp;2&nbsp;&gt;&gt;&nbsp;2]&nbsp;&gt;&gt;&nbsp;8&nbsp;*&nbsp;((_l2&nbsp;+&nbsp;2)&nbsp;%&nbsp;4)&nbsp;&amp;&nbsp;255;<br/>var&nbsp;_l1&nbsp;=&nbsp;0;<br/>while&nbsp;(_l1&nbsp;&lt;&nbsp;4)<br/>{<br/>if&nbsp;(_l2&nbsp;*&nbsp;8&nbsp;+&nbsp;_l1&nbsp;*&nbsp;6&nbsp;&gt;&nbsp;_l3.length&nbsp;*&nbsp;32)<br/>{<br/>str&nbsp;=&nbsp;str&nbsp;+&nbsp;b64pad;<br/>}<br/>else<br/>{<br/>str&nbsp;=&nbsp;str&nbsp;+&nbsp;tab.charAt(triplet&nbsp;&gt;&gt;&nbsp;6&nbsp;*&nbsp;(3&nbsp;-&nbsp;_l1)&nbsp;&amp;&nbsp;63);<br/>}&nbsp;//&nbsp;end&nbsp;if<br/>_l1++;<br/>}&nbsp;//&nbsp;end&nbsp;while<br/>_l2&nbsp;=&nbsp;_l2&nbsp;+&nbsp;3;<br/>}&nbsp;//&nbsp;end&nbsp;while<br/>str;<br/>return(str);<br/>}&nbsp;//&nbsp;End&nbsp;of&nbsp;the&nbsp;function<br/>function&nbsp;removeSpaces(str)<br/>{<br/>var&nbsp;_l2&nbsp;=&nbsp;str;<br/>var&nbsp;_l1&nbsp;=&nbsp;0;<br/>while&nbsp;(_l2.charAt(_l1)&nbsp;==&nbsp;&#34;&nbsp;&#34;)<br/>{<br/>_l1++;<br/>}&nbsp;//&nbsp;end&nbsp;while<br/>_l2&nbsp;=&nbsp;_l2.substr(_l1);<br/>_l1&nbsp;=&nbsp;length(_l2)&nbsp;-&nbsp;1;<br/>while&nbsp;(_l2.charAt(_l1)&nbsp;==&nbsp;&#34;&nbsp;&#34;)<br/>{<br/>_l1--;<br/>}&nbsp;//&nbsp;end&nbsp;while<br/>_l2&nbsp;=&nbsp;_l2.substr(0,&nbsp;_l1&nbsp;+&nbsp;1);<br/>return(_l2);<br/>}&nbsp;//&nbsp;End&nbsp;of&nbsp;the&nbsp;function<br/>function&nbsp;loadover()<br/>{<br/>var&nbsp;_l1&nbsp;=&nbsp;_root;<br/>var&nbsp;_l2&nbsp;=&nbsp;this;<br/>myTrace(&#34;init&nbsp;data&nbsp;loaded!&#34;);<br/>clearInterval(loadInterval);<br/>_l1.companyid&nbsp;=&nbsp;companyid;<br/>_l1.help1&nbsp;=&nbsp;help1;<br/>_l1.need_password&nbsp;=&nbsp;need_password;<br/>_l1.today&nbsp;=&nbsp;today;<br/>_l1.company_name&nbsp;=&nbsp;company_name;<br/>_l1.admin_pass&nbsp;=&nbsp;admin_pass;<br/>_l1.productname&nbsp;=&nbsp;productname;<br/>_l1.company&nbsp;=&nbsp;company;<br/>_l1.homepage&nbsp;=&nbsp;homepage;<br/>_l1.desktopshare&nbsp;=&nbsp;desktopshare;<br/>_l1.LCname&nbsp;=&nbsp;lcname;<br/>_l1.room9&nbsp;=&nbsp;room9;<br/>_l1.defaulttype&nbsp;=&nbsp;defaulttype;<br/>_l1.userip&nbsp;=&nbsp;userip;<br/>if&nbsp;(!_l1.ipConfirm)<br/>{<br/>_l1.kickMessage&nbsp;=&nbsp;&#34;非法IP,请与开发商联系！&#34;;<br/>_l1.gotoAndStop(5);<br/>}<br/>else&nbsp;if&nbsp;(myTimmer&nbsp;&lt;&nbsp;myTimmer1&nbsp;||&nbsp;myTimmer&nbsp;&gt;&nbsp;myTimmer2)<br/>{<br/>_l1.kickMessage&nbsp;=&nbsp;&#34;账户过期，请与开发商联系!&#34;;<br/>_l1.gotoAndStop(5);<br/>}<br/>else&nbsp;if&nbsp;(dialmode&nbsp;==&nbsp;&#34;true&#34;)<br/>{<br/>var&nbsp;_l3&nbsp;=&nbsp;new&nbsp;LoadVars();<br/>_l3.onLoad&nbsp;=&nbsp;function&nbsp;()<br/>{<br/>var&nbsp;_l1&nbsp;=&nbsp;_root;<br/>var&nbsp;_l2&nbsp;=&nbsp;this;<br/>myTrace(&#34;logintype:&nbsp;&#34;&nbsp;+&nbsp;_l2.logintype);<br/>if&nbsp;(_l2.logintype&nbsp;==&nbsp;&#34;0&#34;)<br/>{<br/>if&nbsp;(!_l1.ipConfirm)<br/>{<br/>passhint&nbsp;=&nbsp;&#34;非法IP,请与开发商联系！&#34;;<br/><br/>}&nbsp;//&nbsp;end&nbsp;if<br/>_l1.username&nbsp;=&nbsp;_l2.username;<br/>_l1.maxusers&nbsp;=&nbsp;_l2.maxperson;<br/>_l1.rtmpvalue&nbsp;=&nbsp;&#34;rtmp://&#34;&nbsp;+&nbsp;_l2.serverip&nbsp;+&nbsp;&#34;/room_mix/&#34;&nbsp;+&nbsp;_l1.companyid;<br/>_l1.serverURI&nbsp;=&nbsp;_l2.serverip;<br/>_l1.logType&nbsp;=&nbsp;&#34;in&#34;;<br/>bbMode_btn._visible&nbsp;=&nbsp;true;<br/>duMode_btn._visible&nbsp;=&nbsp;true;<br/>loadHint_txt.text&nbsp;=&nbsp;&#34;下载完毕,请选择带宽进入。&#34;;<br/>}&nbsp;//&nbsp;end&nbsp;if<br/>if&nbsp;(_l2.logintype&nbsp;==&nbsp;&#34;1&#34;)<br/>{<br/>if&nbsp;(need_password&nbsp;==&nbsp;0)<br/>{<br/>_l1.logType&nbsp;=&nbsp;&#34;nopass&#34;;<br/>bbMode_btn._visible&nbsp;=&nbsp;true;<br/>duMode_btn._visible&nbsp;=&nbsp;true;<br/>loadHint_txt.text&nbsp;=&nbsp;&#34;下载完毕,请选择带宽进入。&#34;;<br/>}<br/>else<br/>{<br/>_l1.logType&nbsp;=&nbsp;&#34;pass&#34;;<br/>bbMode_btn._visible&nbsp;=&nbsp;true;<br/>duMode_btn._visible&nbsp;=&nbsp;true;<br/>loadHint_txt.text&nbsp;=&nbsp;&#34;下载完毕,请选择带宽进入。&#34;;<br/>}&nbsp;//&nbsp;end&nbsp;if<br/>}&nbsp;//&nbsp;end&nbsp;if<br/>};<br/>_l3.companyid&nbsp;=&nbsp;_l1.companyid;<br/>_l3.sendAndLoad(&#34;checklogin.php&#34;,&nbsp;_l3,&nbsp;&#34;GET&#34;);<br/>}<br/>else<br/>{<br/>_l3&nbsp;=&nbsp;new&nbsp;LoadVars();<br/>_l3.onLoad&nbsp;=&nbsp;function&nbsp;()<br/>{<br/>var&nbsp;_l1&nbsp;=&nbsp;_root;<br/>var&nbsp;_l2&nbsp;=&nbsp;this;<br/>myTrace(&#34;logintype:&nbsp;&#34;&nbsp;+&nbsp;_l2.logintype);<br/>if&nbsp;(_l2.logintype&nbsp;==&nbsp;&#34;0&#34;)<br/>{<br/>if&nbsp;(!_l1.ipConfirm)<br/>{<br/>_l1.kickMessage&nbsp;=&nbsp;&#34;非法IP,请与开发商联系！&#34;;<br/>_l1.gotoAndStop(5);<br/>}&nbsp;//&nbsp;end&nbsp;if<br/>_l1.username&nbsp;=&nbsp;_l2.username;<br/>_l1.maxusers&nbsp;=&nbsp;_l2.maxperson;<br/>_l1.rtmpvalue&nbsp;=&nbsp;&#34;rtmp://&#34;&nbsp;+&nbsp;_l2.serverip&nbsp;+&nbsp;&#34;/room_mix/&#34;&nbsp;+&nbsp;_l1.companyid;<br/>_l1.serverURI&nbsp;=&nbsp;_l2.serverip;<br/>_l1.gotoAndStop(&#34;room&#34;);<br/>}&nbsp;//&nbsp;end&nbsp;if<br/>if&nbsp;(_l2.logintype&nbsp;==&nbsp;&#34;1&#34;)<br/>{<br/>if&nbsp;(need_password&nbsp;==&nbsp;0)<br/>{<br/>myTrace(&#34;goto&nbsp;nopassword&#34;);<br/>_l1.gotoAndStop(&#34;nopassword&#34;);<br/>}<br/>else<br/>{<br/>myTrace(&#34;goto&nbsp;password&#34;);<br/>_l1.gotoAndStop(&#34;password&#34;);<br/>}&nbsp;//&nbsp;end&nbsp;if<br/>}&nbsp;//&nbsp;end&nbsp;if<br/>};<br/>_l3.companyid&nbsp;=&nbsp;_l1.companyid;<br/>_l3.sendAndLoad(&#34;checklogin.php&#34;,&nbsp;_l3,&nbsp;&#34;GET&#34;);<br/>}&nbsp;//&nbsp;end&nbsp;if<br/>}&nbsp;//&nbsp;End&nbsp;of&nbsp;the&nbsp;function<br/>stop();<br/>System.useCodepage&nbsp;=&nbsp;true;<br/>var&nbsp;myCam&nbsp;=&nbsp;Camera.get();<br/>myVideoObject.attachVideo(myCam);<br/>bbMode_btn._visible&nbsp;=&nbsp;false;<br/>duMode_btn._visible&nbsp;=&nbsp;false;<br/>var&nbsp;hexcase&nbsp;=&nbsp;0;<br/>var&nbsp;b64pad&nbsp;=&nbsp;&#34;&#34;;<br/>var&nbsp;strsize&nbsp;=&nbsp;8;<br/>ipList&nbsp;=&nbsp;new&nbsp;Array();<br/>ipList.push(&#34;59.42.241.31&#34;);<br/>referrer&nbsp;=&nbsp;_root._url;<br/>_root.ipConfirm&nbsp;=&nbsp;false;<br/>var&nbsp;i&nbsp;=&nbsp;0;<br/>while&nbsp;(i&nbsp;&lt;&nbsp;ipList.length)<br/>{<br/>if&nbsp;(referrer.indexOf(ipList[i])&nbsp;&gt;&nbsp;-1)<br/>{<br/>_root.ipConfirm&nbsp;=&nbsp;true;<br/>}&nbsp;//&nbsp;end&nbsp;if<br/>i++;<br/>}&nbsp;//&nbsp;end&nbsp;while<br/>myDate&nbsp;=&nbsp;new&nbsp;Date();<br/>_root.nowDate&nbsp;=&nbsp;myDate.getTime();<br/>myDate.setUTCFullYear(2009,&nbsp;4,&nbsp;21);<br/>_root.expireDate&nbsp;=&nbsp;myDate.getTime();<br/>myTimmer&nbsp;=&nbsp;new&nbsp;Date().getTime();<br/>myTimmer1&nbsp;=&nbsp;new&nbsp;Date(2006,&nbsp;4,&nbsp;10).getTime();<br/>myTimmer2&nbsp;=&nbsp;new&nbsp;Date(2009,&nbsp;4,&nbsp;21).getTime();<br/>_roo.loadover&nbsp;=&nbsp;0;<br/>_root.login_ok&nbsp;=&nbsp;0;<br/>_root.ServerUrl&nbsp;=&nbsp;&#34;218.22.3.16/&#34;;<br/>loadInterval&nbsp;=&nbsp;setInterval(loadover,&nbsp;2000);<br/>function&nbsp;myTrace(msg)<br/>{<br/>var&nbsp;_l1&nbsp;=&nbsp;_root;<br/>_l1.traceBox.text&nbsp;=&nbsp;_l1.traceBox.text&nbsp;+&nbsp;(msg&nbsp;+&nbsp;&#34;\n&#34;);<br/>_l1.traceBox.scroll&nbsp;=&nbsp;_l1.traceBox.maxscroll;<br/>}&nbsp;//&nbsp;End&nbsp;of&nbsp;the&nbsp;function<br/>_root.traceBox._visible&nbsp;=&nbsp;false;<br/>scroll._visible&nbsp;=&nbsp;traceBox._visible;<br/>someListener&nbsp;=&nbsp;new&nbsp;Object();<br/>someListener.onKeyDown&nbsp;=&nbsp;function&nbsp;()<br/>{<br/>if&nbsp;(Key.getCode()&nbsp;==&nbsp;192)<br/>{<br/>traceBox._visible&nbsp;=&nbsp;!traceBox._visible;<br/>scroll._visible&nbsp;=&nbsp;traceBox._visible;<br/>}&nbsp;//&nbsp;end&nbsp;if<br/>};<br/>Key.addListener(someListener);<br/>function&nbsp;nameFunc(args)<br/>{<br/>getURL(args,&nbsp;&#34;_blank&#34;);<br/>}&nbsp;//&nbsp;End&nbsp;of&nbsp;the&nbsp;function<br/>function&nbsp;webFunc(args)<br/>{<br/>getURL(args,&nbsp;&#34;_blank&#34;);<br/>}&nbsp;//&nbsp;End&nbsp;of&nbsp;the&nbsp;function<br/>companyName_txt.htmlText&nbsp;=&nbsp;&#34;&lt;A&nbsp;HREF=\&#34;asfunction:nameFunc,&#34;&nbsp;+&nbsp;_root.homepage&nbsp;+&nbsp;&#34;&nbsp;\&#34;&gt;&#34;&nbsp;+&nbsp;_root.company&nbsp;+&nbsp;&#34;&lt;/A&gt;&#34;;<br/>companyWeb_txt.htmlText&nbsp;=&nbsp;&#34;&lt;A&nbsp;HREF=\&#34;asfunction:webFunc,&#34;&nbsp;+&nbsp;_root.homepage&nbsp;+&nbsp;&#34;&nbsp;\&#34;&gt;&#34;&nbsp;+&nbsp;_root.homepage&nbsp;+&nbsp;&#34;&lt;/A&gt;&#34;;<br/>]]></description>
		</item>
		
			<item>
			<link>http://www.loverer.com/default.asp?id=340</link>
			<title><![CDATA[给FMS配置多个虚拟主机]]></title>
			<author>ctv0071#hotmail.com(ym110)</author>
			<category><![CDATA[P2P&amp;FMS]]></category>
			<pubDate>Tue,16 Oct 2007 18:00:19 +0800</pubDate>
			<guid>http://www.loverer.com/default.asp?id=340</guid>	
		<description><![CDATA[给FlashCom&nbsp;server&nbsp;配置多个虚拟主机<br/>原文出处：<a href="http://www.flashcomguru.com/tutorials/configureFCS.cfm" target="_blank">http://www.flashcomguru.com/tutorials/configureFCS.cfm</a><br/>译者注：为了使得尽可能明了，简化了某些地方。<br/><br/>请注意只有专业版支持虚拟主机，如果你运行的是开发版或者个人版是不能够添加虚拟主机的，应用程序只能运行在_defaultVhost_目录下面。<br/>下面的步骤以windows版本为例，Linux版本下面除了路径不同外其它是类似的。<br/>FlashCom&nbsp;Server&nbsp;使用XML文件作为配置文件，这些配置文件根据级别可以分为：<br/><br/>Server.xml&nbsp;服务器配置文件&nbsp;<br/><br/>Adapter.xml&nbsp;网络适配器配置文件&nbsp;<br/><br/>Vhost.xml&nbsp;虚拟主机配置文件&nbsp;<br/><br/>Application.xml&nbsp;应用程序配置文件<br/><br/>最低的级别是Application.xml。需要配置虚拟主机，我们需要用到三个配置文件：Server.xml、Vhost.xml和Application.xml。<br/>Server.xml&nbsp;放在Flashcom的安装根目录的conf目录下，而&nbsp;Adaptor.xml放在&nbsp;conf/_defaultRoot_/下面，其它两个文件都放在conf/_defaultRoot_/_defaultVHost_/下面。<br/><br/>推荐总是在server.xml中添加虚拟主机，这样也方便以后在管理控制台修改虚拟主机。要添加虚拟主机条目，只要把整个...复制一段并稍作修改。<br/><br/>首先是要设定虚拟主机名称，这是最重要的。假设你的域名是myflashcomhost.com，你要添加一个名称为vhost1.myflashcomhost.com的虚拟主机，就可以这样写。<br/><br/>添加虚拟目录<br/>下一个步骤是创建虚拟主机，你需要建立一个新的目录在Adaptor.xml所在目录（conf/_defaultRoot_/），也就是和_defaultVHost_处在同一个目录下面，我们也可以简单拷贝整个&nbsp;_defaultVHost_目录并重命名。（注意：该虚拟主机名称必须也映射到你的域名，否则将无法访问）<br/><br/>为了能够使得虚拟主机生效，你需要配置Application.xml文件中的和Vhost.xml文件中的参数。如果你是拷贝&nbsp;_defaultVHost_的话，这两个文件已经在新的目录下面了。如果想要新增的虚拟主机能够接受管理连接，你还需要在vhost1.myflashcomhost.com目录下面创建一个admin目录。<br/>添加应用程序映射<br/>FlashCom&nbsp;服务器配置分为两个部分：/conf目录下面的管理文件只有服务器管理员可以访问；应用程序目录存放服务器端脚本。应用程序目录可以设置为通过ftp访问，为每个虚拟主机目录添加专门的scriptlib目录是个好主意。<br/>在应用程序目录vhost1下面建两个文件夹scriptlib和apps，结构如下：<br/><br/>现在我们需要把appsdir指向这两个目录，假设应用程序目录为C:\Inetpub\flashcom\applications&nbsp;<br/>在新建的虚拟主机目录下面编辑Application.xml文件中的scriptlibpath：<br/><br/>&lt;ScriptLibPath&gt;<br/><br/>C:Inetpubflashcomapplicationsvhost1scriptlib<br/><br/>&lt;/ScriptLibPath&gt;<br/><br/>编辑Vhost.xml配置文件中的appsdir<br/><br/>&lt;AppsDir&gt;<br/><br/>C:Inetpubflashcomapplicationsvhost1apps<br/><br/>&nbsp;&lt;/AppsDir&gt;<br/><br/><br/>最后重启Flashcom&nbsp;server就可以了。<br/><br/>最常见的问题就是vhost1.myflashcomhost.com的域名解析问题（略）<br/>更详细的可以参考<a href="http://www.macromedia.com/support/flashcom/documentation.html" target="_blank">http://www.macromedia.com/support/flashcom/documentation.html</a>&nbsp;中的安装指南和管理指南。<br/>FlashCom&nbsp;Live&nbsp;Docs<br/><a href="http://www.macromedia.com/livedocs/flashcom/mx2004/index.html" target="_blank">http://www.macromedia.com/livedocs/flashcom/mx2004/index.html</a>&nbsp;]]></description>
		</item>
		
</channel>
</rss>