【求助】 flash简单的拖拽游戏制作代码问题。
flash吧
全部回复
仅看楼主
level 15
ho♂初八 楼主
本人制作的是一个答题类似的拼图游戏。 比如拖动那个cook 到透明的cook那会自动吸附上去。从上到下图成1是拖动的MC元件 图册2是捕捉的MC元件。 但是需要不正确时回到中间的位置上去。请问如何制作?
2014年11月18日 07点11分 1
level 15
ho♂初八 楼主
拖动的MC元件加入的代码如下
on (press) {
startDrag ("", true); //开始拖动
}
on (release) {
stopDrag ();//停止拖动
obj="/d1"; //底板上相应的图块
if(_droptarget == obj){ //判断释放的图块是否在相应的底板图块上。
//如果是在相应的底板图块上就将
//释放的图块与其对齐,形成一种自动
//吸附的效果。
setProperty("",_x,getProperty(obj,_x));
setProperty("",_y,getProperty(obj,_y));
}
}
捕捉的MC元件实例名称改为d1
2014年11月18日 07点11分 2
[汗]现在问题就是。需要“拖动的MC”元件没有在正确的位置上,然后返回到中间,从而来判定题目是否做的正确
2014年11月18日 11点11分
level 1
矢量化位图与分离位图有何区别?≥﹏≤
2014年11月18日 07点11分 4
[汗]矢量图就是能无限放大。位图放大后会有马赛克
2014年11月18日 09点11分
level 1
这个动画字体是什么效果啊,发光的
2014年11月18日 09点11分 5
自己一个一个式啊。这也问
2014年11月18日 09点11分
level 15
ho♂初八 楼主
2014年11月18日 09点11分 6
level 9
这什么游戏啊?答案都显示出来的。。。。。
2014年11月18日 11点11分 7
[汗]我没把透明度降低而已。
2014年11月18日 11点11分
回复 ho♂初八 :用碰撞很容易实现的。
2014年11月18日 11点11分
回复 win_xp2 :[乖]求大神新开一楼手把手教
2014年11月18日 11点11分
level 9
答案实例名:a1、a2、a3..............a8
底板实例名:b1、b2、b3..............b8
for (var i = 1; i<=8; i++) {
this["a"+i].id = i;
this["a"+i].x = this["a"+i]._x;
this["a"+i].y = this["a"+i]._y;
this["a"+i].onPress = function() {
this.startDrag();
};
this["a"+i].onRelease = function() {
stopDrag();
if (this.hitTest(this._parent["b"+this.id])) {
this._x = this._parent["b"+this.id]._x;
this._y = this._parent["b"+this.id]._y;
} else {
this._x = this.x;
this._y = this.y;
}
};
}
2014年11月18日 12点11分 8
[汗]原来这是输入在舞台帧上的。。。 还有能再麻烦下大神吗? 如果说要拖到正确的位置出现个“勾”。错误出现个“差” 要如何来输入代码呢?
2014年11月18日 12点11分
回复 ho♂初八 :你的要求不是正确吸附,错误返回原位置吗?还需要什么勾叉。就算需要那也要看你是怎么设计的。
2014年11月18日 12点11分
回复 win_xp2 :这样啊。因为我做的这个一套课件。为了让学生来记住这几个单词才来设计这个小游戏的。 加上勾和差好像也有点太突兀了。 那能是正确拖入过去来一个音效。错误来一个音效吗? 不好意思太麻烦你了[呵呵]
2014年11月18日 12点11分
请问这位大神win_xp2,如果要把静态对象mc拖动以吸附指定的动态对象mc上,而拖动到其它动态对象上就回归原位,该怎么设置代码呢?
2015年09月01日 14点09分
level 9
两个音效标识符分别为sound_a、sound_b
var sound:Sound = new Sound();
for (var i = 1; i<=8; i++) {
this["a"+i].id = i;
this["a"+i].x = this["a"+i]._x;
this["a"+i].y = this["a"+i]._y;
this["a"+i].onPress = function() {
this.startDrag();
};
this["a"+i].onRelease = function() {
stopDrag();
if (this.hitTest(this._parent["b"+this.id])) {
this._x = this._parent["b"+this.id]._x;
this._y = this._parent["b"+this.id]._y;
soundfun("sound_a");
} else {
this._x = this.x;
this._y = this.y;
soundfun("sound_b");
}
};
}
function soundfun(str:String) {
sound.stop();
sound.attachSound(str);
sound.start();
}
2014年11月18日 13点11分 9
[真棒]谢谢大神了。
2014年11月18日 13点11分
求助!我做了一个拖拽配对的游戏。完成后点击“再来一次”却无法控制元件回原位。一直在配对框内。用的是你提供的源代码。 求助要怎么解决呢?
2017年03月15日 06点03分
@lianli211 可以一开始就把元件坐标保存在一个数组里,“再来一次”时把元件坐标设置为相应数组的值就可以。
2017年03月15日 09点03分
@lianli211 现在看了下代码,已经保存坐标了,不用再保存到数组,“再来一次”时直接 原件._x = 原件.x 原件._y = 原件.y 就可以了。
2017年03月15日 10点03分
level 12
代码不要写到按钮上,不好找。代码就像楼上那样写。如果需要加入对错。可以用影片剪辑tipMc做两针,第一针钩,第二针叉。
var orgX;
var orgY;
for (var i = 1; i<9; ++i) {
var quest = _root["a"+i];
quest.onPress = function() {
this.startDrag();
orgX = this._x;
orgY = this._y;
};
quest.onRelease = function() {
this.stopDrag();
var id = this._name.slice(1);
var checkObj = _root["b"+id];
if (this.hitTest(checkObj)) {
this._x = checkObj._x;
this._y = checkObj._y;
//正确
tipMc.gotoAndStop(1);
} else {
this._x = orgX;
this._y = orgY;
//错误
tipMc.gotoAndStop(2);
}
};
}
2014年11月18日 13点11分 10
[汗]嗯试了下。tipMc中第一帧应该为空并加个stop。第二帧第三帧分别为勾和差。但是如果只是显现一下“勾或差”就消失要怎么操作呢?
2014年11月18日 13点11分
[吐舌]请问大神。这一段和楼上的大神给的代码有什么区别吗?楼上加入后可以把a1再拖回原来的中间的位置。而你的吸附上正确后下不来了,这是怎么实现的?
2014年11月18日 13点11分
[汗]嗯。我自己研究了下。 闪现“勾差” 得做2个MC,最后一帧得加入个stop拖入到舞台中去。 tipMc1,tipMc2 。然后为tipMc1.gotoAndPlay(2); 和tipMc2.gotoAndPlay(2);即可
2014年11月18日 14点11分
[吐舌]最后再拜托大神下,能解读下代码吗。 为什么LS大神给的代码能拖回原来中间的位置呢?
2014年11月18日 14点11分
level 9
Adobe 有直接的代码,在moviechip的方法里
2014年11月25日 13点11分 11
level 9
我好像来迟了...[黑线]
2014年11月25日 13点11分 12
[笑眼]没事,问题已经解决了
2014年11月25日 13点11分
level 1
楼主,我也是老师,跟你有一样的困扰,最近市级公开课要利用信息化;我也需要这样一个这样的拖拽游戏来让学生记住词,但是完全不会flash,不知你能否方便分享源代码?谢谢。我QQ邮箱[email protected]
2017年09月24日 16点09分 13
楼上的代码已经很详细了。直接用就好
2017年09月25日 00点09分
level 1
请问如何消除flash中的声音副本呀
2018年11月15日 05点11分 14
[汗]14年的贴,你是怎么翻出来的
2018年11月15日 09点11分
1