<?xml version="1.0" encoding="UTF-8"?>
  <feed xmlns="http://www.w3.org/2005/Atom">
  <title type="html"><![CDATA[羽柴|鬼铃-blog]]></title>
  <subtitle type="html"><![CDATA[网页游戏开发,云南游戏开发,云南flash,昆明游戏开发,昆明flash,FMS3,FMS3教程,Flash Media Server]]></subtitle>
  <id>http://www.ycflash.com/</id>
  <link rel="alternate" type="text/html" href="http://www.ycflash.com/" /> 
  <link rel="self" type="application/atom+xml" href="http://www.ycflash.com/atom.asp" /> 
  <generator uri="http://www.pjhome.net/" version="2.8">PJBlog3</generator> 
  <updated>2010-07-05T23:40:32+08:00</updated>

  <entry>
	  <title type="html"><![CDATA[flashplayer10.1.53.64 最新版无法连接FMS]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.ycflash.com/</uri>
		 <email>yuchaiyuwei@163.com</email>
	  </author>
	  <category term="" scheme="http://www.ycflash.com/default.asp?cateID=3" label="FMS" /> 
	  <updated>2010-07-05T23:40:32+08:00</updated>
	  <published>2010-07-05T23:40:32+08:00</published>
		  <summary type="html"><![CDATA[今天刚升了flashplayer10.1.53.64 结果FMS的cal客户端，客户端无响应。。。 解决方法：未知 待查中。。<br/><br/>找到问题所在了，新版本FP 取消了对中文代码的解析。。。 像我这样用全中文写程的人 命苦。。。]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.ycflash.com/article.asp?id=118" /> 
	  <id>http://www.ycflash.com/default.asp?id=118</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[[开源]06年开发的FMS 在线换装聊天室游戏 ]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.ycflash.com/</uri>
		 <email>yuchaiyuwei@163.com</email>
	  </author>
	  <category term="" scheme="http://www.ycflash.com/default.asp?cateID=4" label="游戏算法" /> 
	  <updated>2010-06-30T22:55:40+08:00</updated>
	  <published>2010-06-30T22:55:40+08:00</published>
		  <summary type="html"><![CDATA[[开源]06年开发的FMS 在线换装聊天室游戏 <br/><br/><img src="http://www.ycflash.com/attachments/month_0711/e2007114141652.jpg" border="0" alt=""/><br/><br/><br/><img src="http://www.ycflash.com/attachments/month_0711/j2007114141659.jpg" border="0" alt=""/><br/><br/>换装小游戏聊天室. <br/>带客房端及服务端。 06年开发的小游戏，目前开源。可能有很多纰漏。<br/><br/>//=====================================<br/>//<br/>//转载请注明出处：羽柴 鬼铃-blog&nbsp;&nbsp;<br/>//&nbsp;&nbsp;&nbsp;&nbsp; www.ycflash.com/<br/>//<br/>//=====================================<br/><br/><br/><br/>忘了贴源码，现在补上<br/><br/>源码下载<br/><img src="http://www.ycflash.com/images/download.gif" alt="下载文件" style="margin:0px 2px -4px 0px"/> <a href="http://www.ycflash.com/attachments/month_1006/2010_6_30_01.rar" target="_blank">点击下载此文件</a><br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.ycflash.com/article.asp?id=117" /> 
	  <id>http://www.ycflash.com/default.asp?id=117</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[【注意】AS3 与FMS call的失败原因之—参数不全]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.ycflash.com/</uri>
		 <email>yuchaiyuwei@163.com</email>
	  </author>
	  <category term="" scheme="http://www.ycflash.com/default.asp?cateID=5" label="AS3" /> 
	  <updated>2010-06-19T23:39:00+08:00</updated>
	  <published>2010-06-19T23:39:00+08:00</published>
		  <summary type="html"><![CDATA[今天遇到这样的问题及解决方法如下： 也给各FMS配合AS3开发的人注意 <br/>----FMS端-<br/>newClient.call(&#34;客户端事件&#34;,null,参数1, 参数2,参数3)<br/><br/>---Flash端<br/>AS2：<br/>FmsNc.客户端事件=function(参数1, 参数2,参数3){<br/>}<br/><br/>AS3:<br/>public function 客户端事件(参数1, 参数2,参数3){<br/>}<br/><br/>当FMS端发送数据给客户端时，在某些情况下缺少了某个参数不发送。比如只发送了参数1及参数2 省略了参数3<br/>newClient.call(&#34;客户端事件&#34;,null,参数1, 参数2)<br/><br/>在AS2时完全正常。<br/>但AS3时，就有问题了，即不响应“客户端事件” 输入日志中也没有报错事件。结果找半天问题终于发现了，出在参数不全上。 <br/>在AS3修改为<br/>public function 客户端事件(参数1, 参数2,参数3=null){<br/>}<br/>即如果无参数即默认为null，这时候问题解决。 <br/>-_-! 奇怪的即然是因为缺少了参数FLASH也不报下错，让我找服务端问题找了好长时间....所以注意了。如果call没有响应，有可能是缺少参数引起的。]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.ycflash.com/article.asp?id=116" /> 
	  <id>http://www.ycflash.com/default.asp?id=116</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[[附图]用户列表的实现纠正[新手必看]]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.ycflash.com/</uri>
		 <email>yuchaiyuwei@163.com</email>
	  </author>
	  <category term="" scheme="http://www.ycflash.com/default.asp?cateID=3" label="FMS" /> 
	  <updated>2010-06-12T17:31:18+08:00</updated>
	  <published>2010-06-12T17:31:18+08:00</published>
		  <summary type="html"><![CDATA[因为看到有人在群里面讨论用户列表的实现， 虽然一个简单的用户列表。但说法各异，在此就写一个简单的思路教程吧。推荐FMS应用的新手必看<br/><br/>用户列表，相信很多应用都会用到。像FMS经常做的聊天室， 网络游戏都有用户列表。虽然用户列表看似简单，但实现却不简单。 在此我先把错误的思路及方法说下吧<br/><br/>很多新手做用户列表都是用非常简单的方式。 建立一个数组 连入用户时.push这个数组并且把这个数组广播给客户端，断开用户的时候。找到数组中的位置splice掉。 然后又把这个数组广播给客户端。 这个方法虽然能行，但却是大错特错的方法。除非是小应用还可以用下，用这方法别想做大应用。问题在哪?&nbsp;&nbsp;我下面来分析<br/><br/>问题就出在数据量上面，这样来考虑。如果是一个2000人在线的应用，那这个用户列表就相当于长度2000的数组。如果随便1个人进进出出就相当于广播了2000次左右。如果这个数组记录的仅仅是人名还问题不大，但如果还有其他数据。那可想而知...一进一出就刷2000人的长度2000的数据量，是多么可怕的数据量....相当于发送了2000*2000的数据量<br/><br/>那如何解决呢？就是建立用户列表映射。看以下思路. 同样还是2000人的应用<br/>服务端同样用数组。 当用户登录时只向该用户发送长2000数组（在此分清，是只向登录者这1个人发送并不是向2000人广播这数组）&nbsp;&nbsp;这样就把用户列表映射到登录者客户端。服务端push后这时候再广播登录者信息（注意，在此指的是广播登录者的单独的单元信息比如用户名而不是广播整个数组。） 客户端在收到这个单独信息的时候也做push。 当用户退出的时候服务端做splice处理，处理完后记录splice的数组指针即可。 然后广播这个指针。客户端同步映射根据这个指针做splice处理。（而不是把整个数组的广播扔给客户端）&nbsp;&nbsp;这就是整个映射过程。<br/><br/>这样就相当于只向1个人（登录者）发送了2000长度的数组。而广播的仅仅是要push的信息和删除的ID 而不是向所有用户发送整个数组。这样2000人的应用效率就降低成了1/2000。 <br/><br/>我现在用FMS开发的RPG游戏及以之前开发IU富亨及IU猜谜屋。包括以前开发的14款棋牌游戏都是用的这方法。<br/>具体的代码开发工作比较忙就不再单独写了，只要看懂思路后会发现非常简单。 <br/><br/>同理在开发网络游戏中这样的情况很多见了，为了降低网络流量很多地方都得做数据印射（客户端和服务端各持一份）。比如游戏中的地图数据组，装备数据组等等。并且映射后不影响数据安全，客户端只管显示。核心判断还是在服务端。所以就算映射后在客户端被用户修改那也只是修改他自身的显示而不影响其他正常用户的显示。<br/><br/><br/><span style="color:Red">今天附上一张图片说明，如果图片过宽显示不完全。请另存后看。</span><br/><img src="http://www.ycflash.com/attachments/month_1007/4201072014047.jpg" border="0" alt=""/><br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.ycflash.com/article.asp?id=115" /> 
	  <id>http://www.ycflash.com/default.asp?id=115</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[[AS3] 动画与程序结合 ENTER_FRAME 取代addFrameScript]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.ycflash.com/</uri>
		 <email>yuchaiyuwei@163.com</email>
	  </author>
	  <category term="" scheme="http://www.ycflash.com/default.asp?cateID=5" label="AS3" /> 
	  <updated>2010-05-15T09:36:35+08:00</updated>
	  <published>2010-05-15T09:36:35+08:00</published>
		  <summary type="html"><![CDATA[addFrameScript 虽然方便但最大缺点在于调用方法时不能传入参数. <br/>所以推荐用ENTER_FRAME 来取代addFrameScript<br/>//演示源码在最下方可下载.<br/><br/>//----------方法如下----------<br/>package {<br/>&#160;&#160;&#160;&#160;import flash.display.FrameLabel;<br/>&#160;&#160;&#160;&#160;import flash.events.Event;<br/>&#160;&#160;&#160;&#160;public class 帧执行类 {<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;public var 对象;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;public var 结束方法:Function;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;private var 结束帧:Number;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;private var 循环执行:Boolean;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;public function 帧执行类(MC) {<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;对象=MC;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;public function 赋于方法(帧数,_结束方法=null,_循环执行=false) {<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//检测传来的帧数是否是标签<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if (isNaN(Number(帧数))) {<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//传来的是标签<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;var 标签组:Array = 对象.currentLabels;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;for (var i:uint = 0; i &lt; 标签组.length; i++) {<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;var 标签:FrameLabel = 标签组[i];<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//trace(&#34;frame &#34; + label.frame + &#34;: &#34; + label.name);<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if (标签.name==帧数) {<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//return label.frame<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;帧数=标签.frame;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;break;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;结束帧=帧数;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;循环执行=_循环执行;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;结束方法=_结束方法<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;对象.addEventListener(Event.ENTER_FRAME, 实时检测);<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;private function 实时检测(Evt:Event) {&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if (Evt.target.currentFrame==结束帧) {<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if (!循环执行) {<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;Evt.currentTarget.removeEventListener(Event.ENTER_FRAME, 实时检测);<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;//trace(&#34;执行&#34;);<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;if(结束方法!=null){<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;结束方法(Evt.target,结束帧)<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;}<br/>&#160;&#160;&#160;&#160;}<br/>}<br/>//<br/>//<br/>//==============源码下载============<br/><img src="http://www.ycflash.com/images/download.gif" alt="下载文件" style="margin:0px 2px -4px 0px"/> <a href="http://www.ycflash.com/attachments/month_1005/5201051593622.rar" target="_blank">点击下载此文件</a><br/><br/><br/>//=====================================<br/>//<br/>//转载请注明出处：羽柴 鬼铃-blog&nbsp;&nbsp;<br/>//&nbsp;&nbsp;&nbsp;&nbsp; www.ycflash.com/<br/>//===================================== <br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.ycflash.com/article.asp?id=114" /> 
	  <id>http://www.ycflash.com/default.asp?id=114</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[[AS3] addFrameScript 添加至帧标签]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.ycflash.com/</uri>
		 <email>yuchaiyuwei@163.com</email>
	  </author>
	  <category term="" scheme="http://www.ycflash.com/default.asp?cateID=5" label="AS3" /> 
	  <updated>2010-05-09T19:26:47+08:00</updated>
	  <published>2010-05-09T19:26:47+08:00</published>
		  <summary type="html"><![CDATA[今天遇到这样的问题 添到方法至多个动画,但每个动画所需要触发的帧数不是同一个. 然后得用addFrameScript 把方法添加到帧上.但addFrameScript的参数只支持帧数. 这时候就需要用到在相应的帧标签上addFrameScript. 也就是得获取到帧标签所在的帧数<br/><br/>用下面方法:<br/><br/>import flash.display.FrameLabel;<br/>var labels:Array = MC.currentLabels;<br/>for (var i:uint = 0; i &lt; labels.length; i++) {<br/>&#160;&#160;&#160;&#160;var label:FrameLabel = labels[i];<br/>&#160;&#160;&#160;&#160;trace(&#34;frame &#34; + label.frame + &#34;: &#34; + label.name);<br/>}<br/>//这样就能获取到帧标签所在的帧数了. 然后再相应的addFrameScript ]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.ycflash.com/article.asp?id=113" /> 
	  <id>http://www.ycflash.com/default.asp?id=113</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[FMS的eval不支持动态数组的指向解决方法]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.ycflash.com/</uri>
		 <email>yuchaiyuwei@163.com</email>
	  </author>
	  <category term="" scheme="http://www.ycflash.com/default.asp?cateID=3" label="FMS" /> 
	  <updated>2010-05-03T11:09:53+08:00</updated>
	  <published>2010-05-03T11:09:53+08:00</published>
		  <summary type="html"><![CDATA[今天开发时又发现fms的一个Bug. 不支持eval的字符串指向数组. 在flash中同样的代码移值到FMS中就不行了.<br/><br/>如:<br/>a=new object()<br/>a.b=[111,222]<br/>这时候用eval(&#34;a.b.0&#34;)&nbsp;&nbsp;FMS就报错了. <br/>当然因为我用到的是动态数组路径,这种情况比较特殊. 一般路径如果是已知的直接用 this[&#34;a&#34;][&#34;b&#34;][0]或<br/>a.b[0] 就直接指向了.正因为路径是动态,所以得关联字符串用eval则报错. <br/><br/>解决方法如下:<br/><br/>ponitArr=[&#34;a&#34;,&#34;b&#34;,&#34;0&#34;]<br/>head =this<br/>for (var i = 0; i&lt;ponitArr.length-1; i++) {&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;head = head[ponitArr[i]];<br/>}<br/>trace(head[ponitArr[ponitArr.length-1]])<br/>用遍历的方法取到数组倒数第2层的引用.再动态引用就直接能操作该数值了.<br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.ycflash.com/article.asp?id=112" /> 
	  <id>http://www.ycflash.com/default.asp?id=112</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[关于FMS广播broadcastMSG致死问题纠正]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.ycflash.com/</uri>
		 <email>yuchaiyuwei@163.com</email>
	  </author>
	  <category term="" scheme="http://www.ycflash.com/default.asp?cateID=3" label="FMS" /> 
	  <updated>2010-02-16T12:05:52+08:00</updated>
	  <published>2010-02-16T12:05:52+08:00</published>
		  <summary type="html"><![CDATA[前段时间有人向我问起FMS中的 broadcastMSG，一直认为是bug。还找来了网上的贴子说其他人也认为是bug。但我不这样认为，那是在误导。我平时应用广播都是几百线程都没发现有问题过。于是又写了一个简单的测试broadcastMSG的实例，用服务器同时广播万条压测正常。<br/><br/>当然如果用 broadcastMSG去广播NC，那肯定挂。那本来就是错误的应用方法。不光是用broadcastMSG如果用单call也是很占资源。所以在编写代码时应该考虑什么数据该发，什么数据不该发.而不是为了一个变量而把整个obj或数组发出。<br/><br/>测试程序下载：<br/><img src="http://www.ycflash.com/images/download.gif" alt="下载文件" style="margin:0px 2px -4px 0px"/> <a href="http://www.ycflash.com/attachments/month_1002/3201021612357.rar" target="_blank">点击下载此文件</a><br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.ycflash.com/article.asp?id=111" /> 
	  <id>http://www.ycflash.com/default.asp?id=111</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[神奇的AS2 组件焦点]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.ycflash.com/</uri>
		 <email>yuchaiyuwei@163.com</email>
	  </author>
	  <category term="" scheme="http://www.ycflash.com/default.asp?cateID=2" label="AS2" /> 
	  <updated>2009-07-24T00:19:14+08:00</updated>
	  <published>2009-07-24T00:19:14+08:00</published>
		  <summary type="html"><![CDATA[今天用到组件的时候发现这样一个问题. 在B.swf中用了组件.&nbsp;&nbsp;A.swf加载了b.swf 这时候只要点过那个组件,那组件的焦点框(绿色的)就会一直存在. 查了帮助里面半字没提..经过.net虫的方法.<br/>原来在A.swf库中也要放入相同的组件就行...]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.ycflash.com/article.asp?id=110" /> 
	  <id>http://www.ycflash.com/default.asp?id=110</id>
  </entry>	
		
  <entry>
	  <title type="html"><![CDATA[跨层级加载时 相对路径的问题]]></title>
	  <author>
		 <name>admin</name>
		 <uri>http://www.ycflash.com/</uri>
		 <email>yuchaiyuwei@163.com</email>
	  </author>
	  <category term="" scheme="http://www.ycflash.com/default.asp?cateID=4" label="游戏算法" /> 
	  <updated>2009-07-15T17:38:16+08:00</updated>
	  <published>2009-07-15T17:38:16+08:00</published>
		  <summary type="html"><![CDATA[今天刚好在做多层级加载时发现了这个问题.就把解决方法贴出来了<br/>问题描术:<br/>路径结构是：根级：A.swf&nbsp;&nbsp;data(文件夹)&nbsp;&nbsp;&nbsp;&nbsp; data文件夹中有 B.swf&nbsp;&nbsp; c.swf<br/>在B的代码中有加载C.swf 单独运行B时正常。&nbsp;&nbsp;用A加载B的时候，问题就出现B不会加载c.swf了。<br/>得把c.swf移到和A.swf同级别。<br/><br/>问题原因:<br/>所有加载的swf都是以最外层swf所在目录为根目录<br/>被网页加载的swf都是以网页所在目录为根目录<br/><br/>解决方法:<br/>function 计算文件目录() {<br/>&#160;&#160;&#160;&#160;var 目录索引 = _url.lastIndexOf(&#34;/&#34;);<br/>&#160;&#160;&#160;&#160;var 目录 = _url.substring(0, 目录索引);<br/>&#160;&#160;&#160;&#160;var 文件名 = _url.substring(目录索引+1);<br/>&#160;&#160;&#160;&#160;return [目录, 文件名];<br/>}<br/>trace(_url)<br/>trace(计算文件目录())<br/><br/>//*****重点. 以上函数并把目录和文件名分离了. 所以返回值的[0]是目录 [1]是文件名.这样用起来就更方便了<br/><br/>利用上面的函数,先分析得到主加载器的绝对目录.&nbsp;&nbsp;这时候不论下级载体 或下下级载体. 再调用一次该函数<br/>得到下下级载体的绝对目录.<br/><br/>这样就能得到2个绝对地址&nbsp;&nbsp;然后用字符串分析方法(IndexOf) 找出相同的部分.去掉, 剩下的就是需要的相对路径了. 这样在加载时把这个路径追加上.就能正常的加载N级关系的文件了.<br/><br/>本教程为本人原创，只供学习 如转载教程请注明出处：www.ycflash.com/<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;----羽柴<br/><br/>//再把对比方法也补充上吧. 比较简单.<br/>//========计算自己的相对路径=========<br/>var 目录索引=文件目录[0].indexOf(_root.文件目录[0])<br/>var 相对路径=文件目录[0].substring(目录索引+_root.文件目录[0].length+1)<br/>trace(&#34;相对路径=&#34;+相对路径)<br/><br/><br/>//=====trace环境===解析成功.<br/>主文件目录=file:///F|/制作/A<br/>子文件目录=file:///F|/制作/A/data<br/>相对路径=data<br/>]]></summary>
	  <link rel="alternate" type="text/html" href="http://www.ycflash.com/article.asp?id=109" /> 
	  <id>http://www.ycflash.com/default.asp?id=109</id>
  </entry>	
		
</feed>
