收藏本站腾讯微博新浪微博

经典论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

蓝色理想 最新研发动态 网站开通淘帖功能 - 蓝色理想插件 论坛内容导读一页看论坛 - 给官方提建议

论坛活动及任务 地图和邮件任务 请多用悬赏提问 热夏来袭,选一款蓝色理想的个性T恤吧!

手机上论坛,使用APP获得更好体验 急需前端攻城狮,获得内部推荐机会 论坛开通淘帖功能,收藏终于可以分类了!

搜索
查看: 1192|回复: 6

[其它] 万能的论坛帮帮我吧!本人做的拼图游戏出现故障

[复制链接]
发表于 2009-3-12 20:49:48 | 显示全部楼层 |阅读模式
本人做的拼图游戏练习,之前已经用笨办法做成功了,但后来想试试用使用for循环语句,结果问题就来了。
高人们看看我这个hitTest练习哪里出问题了吧。我把文件贴在后面,请查看。

大概意思就是,让图片p1,p2, p3, p4 碰到代表位置的mc: b1,b2,b3,b4就和它坐标对齐,但代码运行无效。

for (var i = 1; i<5; i++) {
        this["p"+i].onPress = function() {
                this.startDrag(ture);
        };
        this["p"+i].onRelease = function() {
                stopDrag();
        };
        if (this["p"+i].hitTest(this["b"+i])) {                                          //问题肯定是在这里了,但具体错在哪里?正确的应该是怎么写呢?
                  this["p"+i]._x=_this["b"+i]._x;
                               this["p"+i]._y=_this["b"+i]._y;
        }
}
故障文件在此:
Flash: http://www.decor-classic.com.cn/mylife-mywar/download/puzzle-2.swf

[[i] 本帖最后由 gliath 于 2009-3-12 21:07 编辑 ]

拼图-2-for循环练习.swf

22.33 KB, 下载次数: 142

 楼主| 发表于 2009-3-12 20:53:32 | 显示全部楼层
这个是我用笨办法做的,可以正常使用。但我想学习for语句的用法,请指教。

Flash: http://www.decor-classic.com.cn/mylife-mywar/download/puzzle-1.swf

传统方法代码如下:

p1.onPress = function() {
        this.startDrag(ture);
};
p1.onRelease = function() {
        this.stopDrag();
        Hit1 = p1.hitTest(b1);
        Hit2 = p1.hitTest(b2);
        Hit3 = p1.hitTest(b3);
        Hit4 = p1.hitTest(b4);
        if (Hit1) {
                p1._x = b1._x;
                p1._y = b1._y;
        } else if (Hit2) {
                p1._x = b2._x;
                p1._y = b2._y;
        } else if (Hit3) {
                p1._x = b3._x;
                p1._y = b3._y;
        } else if (Hit4) {
                p1._x = b4._x;
                p1._y = b4._y;
        } else {
                p1._x = O3._x;
                p1._y = O3._y;
        }
};

[[i] 本帖最后由 gliath 于 2009-3-12 20:57 编辑 ]
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-13 14:28:46 | 显示全部楼层
顶一下。
回复 支持 反对

使用道具 举报

发表于 2009-3-13 14:33:20 | 显示全部楼层
  1. for (var i = 1; i<5; i++) {
  2.        this["p"+i].id =i;
  3.        this["p"+i].onPress = function() {
  4.               this.startDrag(ture);
  5.        };
  6.        this["p"+i].onRelease = function() {
  7.               this.stopDrag();
  8.               if (this.hitTest(_root["b"+this.id])) {                                          //问题肯定是在这里了,但具体错在哪里?正确的应该是怎么写呢?
  9.                   this._x=_root["b"+this.id]._x;
  10.                   this._y=_root["b"+this.id]._y;
  11.               }
  12.        };
  13.     }
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-13 14:52:31 | 显示全部楼层
多谢版主修正,我去试试。

[[i] 本帖最后由 gliath 于 2009-3-13 18:54 编辑 ]
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-13 14:59:41 | 显示全部楼层
高手修改代码后果然可以了!!!!!超级感谢!不过还有些问题如下:

for (var i = 1; i<5; i++) {
        this["p"+i].id = i;                                                                         //   请教  this[].id 的 意思是!?
        this["p"+i].onPress = function() {
                this.startDrag(ture);
        };
        this["p"+i].onRelease = function() {
                this.stopDrag();
                if (this.hitTest(_root["b"+this.id])) {                               //    请问 为什么 ["b"+i]不可以呢??
                        this._x = _root["b"+this.id]._x;
                        this._y = _root["b"+this.id]._y;
                }
        };
}

[[i] 本帖最后由 gliath 于 2009-3-13 18:54 编辑 ]
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-3-13 15:57:42 | 显示全部楼层
我顶~

[[i] 本帖最后由 gliath 于 2009-3-13 18:53 编辑 ]
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|Archiver|手机版|blueidea.com ( ICP05002321 )  

GMT+8, 2019-5-24 15:08 , Processed in 0.093750 second(s), 10 queries , Gzip On, Memcache On.

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表