<?xml version="1.0" standalone="yes"?>
<?xml-stylesheet type="text/xsl" href="css/rss.xslt"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>虎子哥官方博客 - Flash++</title><link>http://freegezi.net/blog/</link><description>Good Luck To You! - </description><generator>RainbowSoft Studio Z-Blog 1.8 Walle Build 100427</generator><language>zh-CN</language><copyright>  var _gaq = _gaq || [];  _gaq.push(['_setAccount', 'UA-753177-1']);  _gaq.push(['_trackPageview']);  (function() {    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);  })();</copyright><pubDate>Tue, 07 Sep 2010 22:01:54 +0800</pubDate><item><title>将基于AVM1Movie的SWF编码成AS3的MovieClip类 </title><author>webmaster@freegezi.net (indream)</author><link>http://freegezi.net/blog/post/932.html</link><pubDate>Fri, 18 Jun 2010 17:35:37 +0800</pubDate><guid>http://freegezi.net/blog/post/932.html</guid><description><![CDATA[<blockquote><code>/*<br />&nbsp;*&nbsp;ForcibleLoader<br />&nbsp;*&nbsp;<br />&nbsp;*&nbsp;Licensed&nbsp;under&nbsp;the&nbsp;MIT&nbsp;License<br />&nbsp;*&nbsp;<br />&nbsp;*&nbsp;Copyright&nbsp;(c)&nbsp;2007-2009&nbsp;BeInteractive!&nbsp;(www.be-interactive.org)&nbsp;and<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;Spark&nbsp;project&nbsp;&nbsp;(www.libspark.org)<br />&nbsp;*&nbsp;<br />&nbsp;*&nbsp;Permission&nbsp;is&nbsp;hereby&nbsp;granted,&nbsp;free&nbsp;of&nbsp;charge,&nbsp;to&nbsp;any&nbsp;person&nbsp;obtaining&nbsp;a&nbsp;copy<br />&nbsp;*&nbsp;of&nbsp;this&nbsp;software&nbsp;and&nbsp;associated&nbsp;documentation&nbsp;files&nbsp;(the&nbsp;&quot;Software&quot;),&nbsp;to&nbsp;deal<br />&nbsp;*&nbsp;in&nbsp;the&nbsp;Software&nbsp;without&nbsp;restriction,&nbsp;including&nbsp;without&nbsp;limitation&nbsp;the&nbsp;rights<br />&nbsp;*&nbsp;to&nbsp;use,&nbsp;copy,&nbsp;modify,&nbsp;merge,&nbsp;publish,&nbsp;distribute,&nbsp;sublicense,&nbsp;and/or&nbsp;sell<br />&nbsp;*&nbsp;copies&nbsp;of&nbsp;the&nbsp;Software,&nbsp;and&nbsp;to&nbsp;permit&nbsp;persons&nbsp;to&nbsp;whom&nbsp;the&nbsp;Software&nbsp;is<br />&nbsp;*&nbsp;furnished&nbsp;to&nbsp;do&nbsp;so,&nbsp;subject&nbsp;to&nbsp;the&nbsp;following&nbsp;conditions:<br />&nbsp;*&nbsp;<br />&nbsp;*&nbsp;The&nbsp;above&nbsp;copyright&nbsp;notice&nbsp;and&nbsp;this&nbsp;permission&nbsp;notice&nbsp;shall&nbsp;be&nbsp;included&nbsp;in<br />&nbsp;*&nbsp;all&nbsp;copies&nbsp;or&nbsp;substantial&nbsp;portions&nbsp;of&nbsp;the&nbsp;Software.<br />&nbsp;*&nbsp;<br />&nbsp;*&nbsp;THE&nbsp;SOFTWARE&nbsp;IS&nbsp;PROVIDED&nbsp;&quot;AS&nbsp;IS&quot;,&nbsp;WITHOUT&nbsp;WARRANTY&nbsp;OF&nbsp;ANY&nbsp;KIND,&nbsp;EXPRESS&nbsp;OR<br />&nbsp;*&nbsp;IMPLIED,&nbsp;INCLUDING&nbsp;BUT&nbsp;NOT&nbsp;LIMITED&nbsp;TO&nbsp;THE&nbsp;WARRANTIES&nbsp;OF&nbsp;MERCHANTABILITY,<br />&nbsp;*&nbsp;FITNESS&nbsp;FOR&nbsp;A&nbsp;PARTICULAR&nbsp;PURPOSE&nbsp;AND&nbsp;NONINFRINGEMENT.&nbsp;IN&nbsp;NO&nbsp;EVENT&nbsp;SHALL&nbsp;THE<br />&nbsp;*&nbsp;AUTHORS&nbsp;OR&nbsp;COPYRIGHT&nbsp;HOLDERS&nbsp;BE&nbsp;LIABLE&nbsp;FOR&nbsp;ANY&nbsp;CLAIM,&nbsp;DAMAGES&nbsp;OR&nbsp;OTHER<br />&nbsp;*&nbsp;LIABILITY,&nbsp;WHETHER&nbsp;IN&nbsp;AN&nbsp;ACTION&nbsp;OF&nbsp;CONTRACT,&nbsp;TORT&nbsp;OR&nbsp;OTHERWISE,&nbsp;ARISING&nbsp;FROM,<br />&nbsp;*&nbsp;OUT&nbsp;OF&nbsp;OR&nbsp;IN&nbsp;CONNECTION&nbsp;WITH&nbsp;THE&nbsp;SOFTWARE&nbsp;OR&nbsp;THE&nbsp;USE&nbsp;OR&nbsp;OTHER&nbsp;DEALINGS&nbsp;IN<br />&nbsp;*&nbsp;THE&nbsp;SOFTWARE.<br />&nbsp;*&nbsp;<br />&nbsp;*/<br />package<br />{<br />&nbsp;&nbsp;import&nbsp;flash.display.Loader;<br />&nbsp;&nbsp;import&nbsp;flash.net.URLRequest;<br />&nbsp;&nbsp;import&nbsp;flash.net.URLStream;<br />&nbsp;&nbsp;import&nbsp;flash.events.IOErrorEvent;<br />&nbsp;&nbsp;import&nbsp;flash.events.SecurityErrorEvent;<br />&nbsp;&nbsp;import&nbsp;flash.events.Event;<br />&nbsp;&nbsp;import&nbsp;flash.utils.ByteArray;<br />&nbsp;&nbsp;import&nbsp;flash.utils.Endian;<br />&nbsp;&nbsp;import&nbsp;flash.errors.EOFError;<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;/**<br />&nbsp;&nbsp;&nbsp;*&nbsp;Loads&nbsp;a&nbsp;SWF&nbsp;file&nbsp;as&nbsp;version&nbsp;9&nbsp;format&nbsp;forcibly&nbsp;even&nbsp;if&nbsp;version&nbsp;is&nbsp;under&nbsp;9.<br />&nbsp;&nbsp;&nbsp;*&nbsp;<br />&nbsp;&nbsp;&nbsp;*&nbsp;Usage:<br />&nbsp;&nbsp;&nbsp;*&nbsp;&lt;pre&gt;<br />&nbsp;&nbsp;&nbsp;*&nbsp;var&nbsp;loader:Loader&nbsp;=&nbsp;Loader(addChild(new&nbsp;Loader()));<br />&nbsp;&nbsp;&nbsp;*&nbsp;var&nbsp;fLoader:ForcibleLoader&nbsp;=&nbsp;new&nbsp;ForcibleLoader(loader);<br />&nbsp;&nbsp;&nbsp;*&nbsp;fLoader.load(new&nbsp;URLRequest('swf7.swf'));<br />&nbsp;&nbsp;&nbsp;*&nbsp;&lt;/pre&gt;<br />&nbsp;&nbsp;&nbsp;*&nbsp;<br />&nbsp;&nbsp;&nbsp;*&nbsp;@author&nbsp;yossy:beinteractive<br />&nbsp;&nbsp;&nbsp;*&nbsp;@see&nbsp;http://www.be-interactive.org/?itemid=250<br />&nbsp;&nbsp;&nbsp;*&nbsp;@see&nbsp;http://fladdict.net/blog/2007/05/avm2avm1swf.html<br />&nbsp;&nbsp;&nbsp;*/<br />&nbsp;&nbsp;public&nbsp;class&nbsp;ForcibleLoader<br />&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;ForcibleLoader(loader:Loader)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;this.loader&nbsp;=&nbsp;loader;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_stream&nbsp;=&nbsp;new&nbsp;URLStream();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_stream.addEventListener(Event.COMPLETE,&nbsp;completeHandler);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_stream.addEventListener(IOErrorEvent.IO_ERROR,&nbsp;ioErrorHandler);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_stream.addEventListener(SecurityErrorEvent.SECURITY_ERROR,&nbsp;securityErrorHandler);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;var&nbsp;_loader:Loader;<br />&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;var&nbsp;_stream:URLStream;<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;get&nbsp;loader():Loader<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;_loader;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;set&nbsp;loader(value:Loader):void<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_loader&nbsp;=&nbsp;value;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;load(request:URLRequest):void<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_stream.load(request);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;function&nbsp;completeHandler(event:Event):void<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;inputBytes:ByteArray&nbsp;=&nbsp;new&nbsp;ByteArray();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_stream.readBytes(inputBytes);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;_stream.close();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inputBytes.endian&nbsp;=&nbsp;Endian.LITTLE_ENDIAN;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(isCompressed(inputBytes))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uncompress(inputBytes);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;version:uint&nbsp;=&nbsp;uint(inputBytes[3]);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(version&nbsp;&lt;&nbsp;9)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;updateVersion(inputBytes,&nbsp;9);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(version&nbsp;&gt;&nbsp;7)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;flagSWF9Bit(inputBytes);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;insertFileAttributesTag(inputBytes);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;loader.loadBytes(inputBytes);<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;function&nbsp;isCompressed(bytes:ByteArray):Boolean<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;bytes[0]&nbsp;==&nbsp;0x43;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;function&nbsp;uncompress(bytes:ByteArray):void<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;cBytes:ByteArray&nbsp;=&nbsp;new&nbsp;ByteArray();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cBytes.writeBytes(bytes,&nbsp;8);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bytes.length&nbsp;=&nbsp;8;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bytes.position&nbsp;=&nbsp;8;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cBytes.uncompress();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bytes.writeBytes(cBytes);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bytes[0]&nbsp;=&nbsp;0x46;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cBytes.length&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;function&nbsp;getBodyPosition(bytes:ByteArray):uint<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;result:uint&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result&nbsp;+=&nbsp;3;&nbsp;//&nbsp;FWS/CWS<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result&nbsp;+=&nbsp;1;&nbsp;//&nbsp;version(byte)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result&nbsp;+=&nbsp;4;&nbsp;//&nbsp;length(32bit-uint)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;rectNBits:uint&nbsp;=&nbsp;bytes[result]&nbsp;&gt;&gt;&gt;&nbsp;3;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result&nbsp;+=&nbsp;(5&nbsp;+&nbsp;rectNBits&nbsp;*&nbsp;4)&nbsp;/&nbsp;8;&nbsp;//&nbsp;stage(rect)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result&nbsp;+=&nbsp;2;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result&nbsp;+=&nbsp;1;&nbsp;//&nbsp;frameRate(byte)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;result&nbsp;+=&nbsp;2;&nbsp;//&nbsp;totalFrames(16bit-uint)<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;result;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;function&nbsp;findFileAttributesPosition(offset:uint,&nbsp;bytes:ByteArray):uint<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bytes.position&nbsp;=&nbsp;offset;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;try&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(;;)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;byte:uint&nbsp;=&nbsp;bytes.readShort();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;tag:uint&nbsp;=&nbsp;byte&nbsp;&gt;&gt;&gt;&nbsp;6;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(tag&nbsp;==&nbsp;69)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;bytes.position&nbsp;-&nbsp;2;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;length:uint&nbsp;=&nbsp;byte&nbsp;&amp;&nbsp;0x3f;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(length&nbsp;==&nbsp;0x3f)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;length&nbsp;=&nbsp;bytes.readInt();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bytes.position&nbsp;+=&nbsp;length;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;catch&nbsp;(e:EOFError)&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;NaN;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;function&nbsp;flagSWF9Bit(bytes:ByteArray):void<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;pos:uint&nbsp;=&nbsp;findFileAttributesPosition(getBodyPosition(bytes),&nbsp;bytes);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!isNaN(pos))&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bytes[pos&nbsp;+&nbsp;2]&nbsp;|=&nbsp;0x08;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;function&nbsp;insertFileAttributesTag(bytes:ByteArray):void<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;pos:uint&nbsp;=&nbsp;getBodyPosition(bytes);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;afterBytes:ByteArray&nbsp;=&nbsp;new&nbsp;ByteArray();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;afterBytes.writeBytes(bytes,&nbsp;pos);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bytes.length&nbsp;=&nbsp;pos;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bytes.position&nbsp;=&nbsp;pos;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bytes.writeByte(0x44);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bytes.writeByte(0x11);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bytes.writeByte(0x08);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bytes.writeByte(0x00);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bytes.writeByte(0x00);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bytes.writeByte(0x00);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bytes.writeBytes(afterBytes);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;afterBytes.length&nbsp;=&nbsp;0;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;function&nbsp;updateVersion(bytes:ByteArray,&nbsp;version:uint):void<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bytes[3]&nbsp;=&nbsp;version;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;function&nbsp;ioErrorHandler(event:IOErrorEvent):void<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;loader.contentLoaderInfo.dispatchEvent(event.clone());<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;private&nbsp;function&nbsp;securityErrorHandler(event:SecurityErrorEvent):void<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;loader.contentLoaderInfo.dispatchEvent(event.clone());<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;}<br />}</code></blockquote>]]></description><category>Flash++</category><comments>http://freegezi.net/blog/post/932.html#comment</comments><wfw:comment>http://freegezi.net/blog/</wfw:comment><wfw:commentRss>http://freegezi.net/blog/feed.asp?cmt=932</wfw:commentRss><trackback:ping>http://freegezi.net/blog/cmd.asp?act=tb&amp;id=932&amp;key=e644c687</trackback:ping></item><item><title>汉字转拼音_AS3</title><author>webmaster@freegezi.net (indream)</author><link>http://freegezi.net/blog/post/925.html</link><pubDate>Sun, 23 May 2010 00:02:30 +0800</pubDate><guid>http://freegezi.net/blog/post/925.html</guid><description><![CDATA[<p><object width="400" height="300" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,29,0"><param name="movie" value="http://freegezi.net/blog/upload/201005230003341762.swf" /><param name="quality" value="high" /><param name="play" value="True" /><embed width="400" height="300" src="http://freegezi.net/blog/upload/201005230003341762.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" play="True"></embed></object></p><p>Char2Pinyin类:</p><p>点击&nbsp;<a target="_blank" href="http://freegezi.net/blog/upload/Char2Pinyin.zip">Char2Pinyin.zip</a>&nbsp;下载</p>]]></description><category>Flash++</category><comments>http://freegezi.net/blog/post/925.html#comment</comments><wfw:comment>http://freegezi.net/blog/</wfw:comment><wfw:commentRss>http://freegezi.net/blog/feed.asp?cmt=925</wfw:commentRss><trackback:ping>http://freegezi.net/blog/cmd.asp?act=tb&amp;id=925&amp;key=8621591d</trackback:ping></item><item><title>结点引力球效果_AS3</title><author>webmaster@freegezi.net (indream)</author><link>http://freegezi.net/blog/post/923.html</link><pubDate>Fri, 21 May 2010 14:53:51 +0800</pubDate><guid>http://freegezi.net/blog/post/923.html</guid><description><![CDATA[<p><object width="400" height="400" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,40,0"><param name="src" value="http://freegezi.net/blog/upload/201005211454554481.swf" /><embed width="400" height="400" type="application/x-shockwave-flash" src="http://freegezi.net/blog/upload/201005211454554481.swf"></embed></object></p><blockquote> import flash.display.Sprite;<br />import flash.events.Event;<br />import flash.geom.Point;<br />import com.FPS;<br />addChild(new FPS());<br />var dotNum:Number = 40;<br />var list:Array = []<br />for(var i=0;i&lt;dotNum;i++){<br />&nbsp;&nbsp; &nbsp;var ball:MovieClip = new MovieClip();<br />&nbsp;&nbsp; &nbsp;with(ball.graphics){<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;beginFill(0xffcc00,0.9);<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;drawCircle(0,0,3);<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;endFill();<br />&nbsp;&nbsp; &nbsp;}<br />&nbsp;&nbsp; &nbsp;if(i==0){<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;ball.mass = 20<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;ball.x = stage.stageWidth*0.5;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;ball.y = stage.stageHeight*0.5;<br />&nbsp;&nbsp; &nbsp;}else{<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;ball.mass = Math.random()+1;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;ball.speedX = 0;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;ball.speedY = 0;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;ball.x = stage.stageWidth/2+Math.random()*300-150;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;ball.y = stage.stageHeight/2+Math.random()*300-150;<br />&nbsp;&nbsp; &nbsp;}<br />&nbsp;&nbsp; &nbsp;addChild(ball);<br />&nbsp;&nbsp; &nbsp;list.push(ball)<br />}<br />this.addEventListener(Event.ENTER_FRAME,loop);<br />function loop(evt):void{<br />&nbsp;&nbsp; &nbsp;this.graphics.clear();<br />&nbsp;&nbsp; &nbsp;for(var i=0;i&lt;list.length;i++){<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;if(i!=0){<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;list[i].speedX*=0.999;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;list[i].speedY*=0.999;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;list[i].x += list[i].speedX;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;list[i].y += list[i].speedY;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br />&nbsp;&nbsp; &nbsp;}<br />&nbsp;&nbsp; &nbsp;for(i=0;i&lt;list.length;i++){<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;for(var j=i;j&lt;list.length;j++){<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;if(i!=j){<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;var dis:Number = dist(new Point(list[i].x,list[i].y),new Point(list[j].x,list[j].y));<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;if(dis&gt;4){<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;var mass = (list[i].mass+list[j].mass);<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;var _power_out:Number = 0.5*mass;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;var _power_in:Number = 25*mass;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;var _power = -_power_out/Math.pow(dis,2)+_power_in/Math.pow(dis,3);<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;if(i!=0){<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;list[i].speedX += _power*(list[i].x-list[j].x);<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;list[i].speedY += _power*(list[i].y-list[j].y);<br />&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;list[j].speedX -= _power*(list[i].x-list[j].x);<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;list[j].speedY -= _power*(list[i].y-list[j].y);<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}<br />&nbsp;&nbsp; &nbsp;}<br />}<br />function dist(pt0:Point,pt1:Point):Number{<br />&nbsp;&nbsp; &nbsp;var dx = pt0.x - pt1.x;<br />&nbsp;&nbsp; &nbsp;var dy = pt0.y - pt1.y<br />&nbsp;&nbsp; &nbsp;var dis = Math.sqrt(dx*dx+dy*dy);<br />&nbsp;&nbsp; &nbsp;if(dis&lt;40){<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;this.graphics.lineStyle(0.5,0x00ccff,Math.max(0,1-dis/40));<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;this.graphics.moveTo(pt0.x,pt0.y);<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;this.graphics.lineTo(pt1.x,pt1.y);<br />&nbsp;&nbsp; &nbsp;}<br />&nbsp;&nbsp; &nbsp;return dis;<br />}</blockquote>]]></description><category>Flash++</category><comments>http://freegezi.net/blog/post/923.html#comment</comments><wfw:comment>http://freegezi.net/blog/</wfw:comment><wfw:commentRss>http://freegezi.net/blog/feed.asp?cmt=923</wfw:commentRss><trackback:ping>http://freegezi.net/blog/cmd.asp?act=tb&amp;id=923&amp;key=1a2268d9</trackback:ping></item><item><title>程序员的骄傲: 我用AS3写出了房子,车子,老婆及未来.</title><author>webmaster@freegezi.net (indream)</author><link>http://freegezi.net/blog/post/917.html</link><pubDate>Thu, 06 May 2010 14:55:47 +0800</pubDate><guid>http://freegezi.net/blog/post/917.html</guid><description><![CDATA[<p>trace(&quot;房子,车子,老婆,未来&quot;);</p>]]></description><category>Flash++</category><comments>http://freegezi.net/blog/post/917.html#comment</comments><wfw:comment>http://freegezi.net/blog/</wfw:comment><wfw:commentRss>http://freegezi.net/blog/feed.asp?cmt=917</wfw:commentRss><trackback:ping>http://freegezi.net/blog/cmd.asp?act=tb&amp;id=917&amp;key=19c19997</trackback:ping></item></channel></rss>
