欢迎光临
羽柴|鬼铃'blog
QQ:34284682 | 251055853 
技术高级群:  FMS: 71695402  |  游戏开发:48295089 


 

预览模式: 普通 | 列表

关于FMS广播broadcastMSG致死问题纠正

前段时间有人向我问起FMS中的 broadcastMSG,一直认为是bug。还找来了网上的贴子说其他人也认为是bug。但我不这样认为,那是在误导。我平时应用广播都是几百线程都没发现有问题过。于是又写了一个简单的测试broadcastMSG的实例,用服务器同时广播万条压测正常。

当然如果用 broadcastMSG去广播NC,那肯定挂。那本来就是错误的应用方法。不光是用broadcastMSG如果用单call也是很占资源。所以在编写代码时应该考虑什么数据该发,什么数据不该发.而不是为了一个变量而把整个obj或数组发出。

测试程序下载:
下载文件 点击下载此文件
分类:FMS | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 346

神奇的AS2 组件焦点

今天用到组件的时候发现这样一个问题. 在B.swf中用了组件.  A.swf加载了b.swf 这时候只要点过那个组件,那组件的焦点框(绿色的)就会一直存在. 查了帮助里面半字没提..经过.net虫的方法.
原来在A.swf库中也要放入相同的组件就行...

查看更多...

分类:AS2 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 773

跨层级加载时 相对路径的问题

今天刚好在做多层级加载时发现了这个问题.就把解决方法贴出来了
问题描术:
路径结构是:根级:A.swf  data(文件夹)     data文件夹中有 B.swf   c.swf
在B的代码中有加载C.swf 单独运行B时正常。  用A加载B的时候,问题就出现B不会加载c.swf了。
得把c.swf移到和A.swf同级别。

问题原因:
所有加载的swf都是以最外层swf所在目录为根目录
被网页加载的swf都是以网页所在目录为根目录

解决方法:

查看更多...

分类:游戏算法 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1297

循环的优化

//在写程的时候遇到较大较多数数据用循环处理时,注意优化.做了这样一个测试.
特别是针对数组,我们经常见到 for(var i=0;i<xxx.length;i++)这样的方法.
当然如果该数组长度小,套用的循环层级不深次数少时可以用这样的方法.而遇到数量多时推荐用个变量来存放.
var iLength = 数组.length;
for (var i = 0; i<iLength; i++) {
}
这样的方法可以大大优化代码运算可用我下面的测试代码可以看出,特别是针对服务端的运算,更是推荐.
不要小看那么的几毫秒,但针对的用户运算成千上万次运算时就知道优化的重要性了
(注意:此方法只限用于在循环中数组长度不改变的前提下.)

测试数组 = new Array(10000);

查看更多...

分类:FMS | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1110
今天有人提起五子棋的算法问题,就把以前开发的源码直接贴出来了。大家去看源码学习吧

因为五子棋算法如果要写说明可能会写非常大一贴。所以在此就只做简单的原理说明,具体的下载源码研究吧。

很多人第1步肯定会问起五子棋如何判断5子相连。基本只要熟悉2维数组应用的程序员就比较容易理解了。
在此用2维数组 白字为0  黑子为1 用数组判断,很快就能判断出是否五子相连

比如用这样的小数组表示棋盘:

arr[0]=[0,0,0,0,1]
arr[1]=[1,1,1,1,1]

查看更多...

分类:游戏算法 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 2746

Flash Media Server_2 中文帮助

上传了一份FMS2的中文帮助,给需要的人下载吧
点击此处下载


上面那个链接是包含PDF阅读器的,近40M。如果有PDF阅读器的请下载下面的。3M
点击此处下载
分类:FMS | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 926
在开发网络版关于 1-2颗骰子游戏过程中,经常会出现这样的情况。服务端随机取了骰子的总数,在客户端得根据这个骰子总数随机分配。1颗骰子当然就没必要了。 主要是2颗骰子
比如: 服务端发来骰子和: 8点   客户端的2颗骰子就要随机显示,  有可能1,7  2,6    3,5   4,4   5,3  6,2   7,1 这样的结果。现在把算法列出来。

//==============算法如下====================
function 计算骰子值(总值, 骰子数) {
    var 骰子值 = new Array();
    if (骰子数 == 1) {
        骰子值 = [总值, 0];
    } else if (骰子数 == 2) {
        if (总值>6) {
            var 随机最小值 = 总值-6;

查看更多...

分类:游戏算法 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1167

AS2中神奇的setInterval

AS2中的setInterval计时执行方法经过多次使用发现问题却真多.并且在帮助上也没有注明。全靠实践中才发现
相信很多人开发中也遇到同样setInterval不好使的情况吧。
经常出现的肯定就以下2种情况
1 明明已经clearInterval的怎么却还执行
2 如果是在子MC中使用了 setInterval 如果unloadClip这个MC 怎么还会执行setInterval 中的事件。


经过多次实践终于解决了以上2问题。方法如下:

1 明明已经clearInterval的怎么却还执行
出现原因:因为在未执行clearInterval时如果又再执行一次 index=setInterval()那此时index不会被复盖,而是却生出另一个对应index的序号。这时候用trace(index)就发现了, 每执行一次index=setInterval()  index就会递增1.
解决方法:先初始一个index=-1 在每执行index=setInterval()前先执行一次clearInterval.如果中间需要中断时在调用的函数中根据情况执行clearInterval即可

查看更多...

分类:AS2 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1248