查看: 2287|回复: 13
|
[请教]AS2.0 DuplicateMC Drag
[复制链接]
|
|
btn 是一个button 的 instance name
mc 是我要duplicate mc 的 instance name
- var i;
- for(i=0; i<10; i++)
- _root.btn.onPress = function() {
- i+= 1;
- duplicateMovieClip(_root.mc,"star"+i, i);
- startDrag("star"+i, true);
- }
- _root.btn.onRelease=_root.btn.onReleaseOutside=function()
- {
- stopDrag();
- }
- if(_root."star"+i._x>400)
- _root.removeMovieClip();
复制代码
我写了这个AS,但是达不到我要的效果,
我是要按一个button,然后mouse就出现那个我要duplicate的mc,
然后以把mc drag 然后 放了,然后可以再drag过。
可是我的情况就是不能再drag过。
请问有什么办法能把stopdrag了的mc再 startdrag? |
|
|
|
|
|
|
|
发表于 10-2-2010 02:39 AM
|
显示全部楼层
看不明白你的 "然后以把mc drag 然后 放了,然后可以再drag过。" 想表達甚麼
這部分為甚麼會出現在同一個 frame 中??
# if(_root."star"+i._x>400)
# _root.removeMovieClip(); |
|
|
|
|
|
|
|
楼主 |
发表于 10-2-2010 05:45 PM
|
显示全部楼层
看不明白你的 "然后以把mc drag 然后 放了,然后可以再drag过。" 想表達甚麼
就是
1)click 一个 button.mouse 出现一个start drag的mc.
2)我把mc drag去一个point.然后release mouse to stop drag.
3)我release mouse stop drag 后,发现位置不正确,想要再start drag ..
就是这个意思
這部分為甚麼會出現在同一個 frame 中??
# if(_root."star"+i._x>400)
# _root.removeMovieClip();
super-tomato 发表于 10-2-2010 02:39 AM
# if(_root."star"+i._x>400)
# _root.removeMovieClip();
我不知道是要在同一个frame或是其他的frame.。。目的是out of范围的就会被delete |
|
|
|
|
|
|
|
发表于 10-2-2010 06:40 PM
|
显示全部楼层
# if(_root."star"+i._x>400)
# _root.removeMovieClip();
我不知道是要在同一个frame或是 ...
yawchoong 发表于 10-2-2010 05:45 PM
这判断应放在 star 這個 mc 當中,只要本身循环判断 _x 大于場景上的 400 范围就可以本身自我移除
如果想节省資源耗用的話就只用一個 enterframe 事件循环判断所有的 star 座标
你一楼的 looping 方式是無法一直循环判断star 對象 |
|
|
|
|
|
|
|
楼主 |
发表于 13-2-2010 01:28 AM
|
显示全部楼层
哦。谢谢,这个我明白了。
但是还有一个主要的问题。旧书stopdrag 后,怎样start drag? |
|
|
|
|
|
|
|
发表于 13-2-2010 05:29 AM
|
显示全部楼层
哦。谢谢,这个我明白了。
但是还有一个主要的问题。旧书stopdrag 后,怎样start drag?
yawchoong 发表于 13-2-2010 01:28 AM
給你的 object 定義 onPress 和 onRelease 事件, 就像你的 _root.btn 一樣 |
|
|
|
|
|
|
|
楼主 |
发表于 14-2-2010 01:35 PM
|
显示全部楼层
哈哈,先谢谢。
我有想过这样做,但是因为object的instance name 是 "star"+i
我不知道要怎样给那个object instance name.
因为"star"+i,不可能 _root."star"+1.onPress 吧? |
|
|
|
|
|
|
|
发表于 15-2-2010 06:46 PM
|
显示全部楼层
哈哈,先谢谢。
我有想过这样做,但是因为object的instance name 是 "star"+i
我不知道要怎样给那个object instance name.
因为"star"+i,不可能 _root."star"+1.onPress 吧?
yawchoong 发表于 14-2-2010 01:35 PM
_root["start"+i].onPress = function()
{
//blah blah blah....
} |
|
|
|
|
|
|
|
楼主 |
发表于 16-2-2010 01:30 PM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 24-2-2010 10:39 AM
|
显示全部楼层
我试了,还是不能。一样的问题。
yawchoong 发表于 16-2-2010 01:30 PM
想想看你最後那段應該放在哪, 程式執行都會有先後 |
|
|
|
|
|
|
|
楼主 |
发表于 25-2-2010 03:21 PM
|
显示全部楼层
- var i;
- for(i=0; i<10; i++)
- _root.btn.onPress = function()
- {
- i+= 1;
- duplicateMovieClip(_root.mc,"star"+i, i);
- startDrag("star"+i, true);
-
- _root["star"+i].onPress = function()
- {
- startDrag("star"+i, true);
- }
- _root["star"+i].onRelease = function()
- {
- stopDrag();
- }
- }
- _root.btn.onRelease=_root.btn.onReleaseOutside=function()
- {
- stopDrag();
- }
复制代码 谢谢,改了一些,好了一点,但只能对刚duplicate 的mc 罢了 |
|
|
|
|
|
|
|
发表于 26-2-2010 12:46 PM
|
显示全部楼层
谢谢,改了一些,好了一点,但只能对刚duplicate 的mc 罢了
yawchoong 发表于 25-2-2010 03:21 PM
你的 coding 就只針對复制出來的對象,不然你还想拖动甚么?? |
|
|
|
|
|
|
|
楼主 |
发表于 26-2-2010 12:57 PM
|
显示全部楼层
你的 coding 就只針對复制出來的對象,不然你还想拖动甚么??
super-tomato 发表于 26-2-2010 12:46 PM
哦,我要拖动的就是复制出来的对象,但这个code只能拖动刚刚复制的哪一个mc,上几次复制的mc我也要drag但做不到。 |
|
|
|
|
|
|
|
发表于 26-2-2010 01:35 PM
|
显示全部楼层
哦,我要拖动的就是复制出来的对象,但这个code只能拖动刚刚复制的哪一个mc,上几次复制的mc我也要 ...
yawchoong 发表于 26-2-2010 12:57 PM
注意看 startDrag 的参數使用,還有你到現在還不明白 i 這個变数的變化,请用 trace 來追踪 |
|
|
|
|
|
|
| |
本周最热论坛帖子
|