FLASH中for 循环语句总是执行不了。放上代码。求助。

场景中有四个元件。拖动其中任何一个碰撞到场景中的BOX。即触发跳转帧,同时被拖动的元件回归原位。如果拖动的时候没有碰到BOX。就缓动回归原位。importmx.trans... 场景中有四个元件。拖动其中任何一个碰撞到场景中的BOX。即触发跳转帧,同时被拖动的元件回归原位。如果拖动的时候没有碰到BOX。就缓动回归原位。
import mx.transitions.Tween;
import mx.transitions.easing.*;

for (i=1; i<=3; i++) {
this["mc"+i].onPress = function() {
this["mc"+i].startDrag();
};
this["mc"+i].onRelease = function() {
this["mc"+i].stopDrag();
hit = this["mc"+i].hitTest(box);
if (hit) {
gotoAndStop(i+2);
this["mc"+i]._x = 850;
this["mc"+i]._y = 50;
} else {
new Tween(this["mc"+i], "_x", Back.easeOut, _xmouse, 850, 5, false);
new Tween(this["mc"+i], "_y", Back.easeOut, _ymouse, 50, 5, false);
}
};
}
展开
 我来答
ylylsheep
2011-05-20 · TA获得超过1280个赞
知道小有建树答主
回答量:823
采纳率:0%
帮助的人:1044万
展开全部
//按你的要求在FLASH里面做了下
//将以下代码 复制到第一帧运行,舞台上需要有 mc1 mc2 m3 以及 box 4个实例剪辑

import mx.transitions.Tween;
import mx.transitions.easing.*;

var onKey:Number = 0;
for (i = 1; i <= 3; i++)
{
//记录每个元件初始位置
this["mc" + i].oldX = this["mc" + i]._x;
this["mc" + i].oldY = this["mc" + i]._y;
this["mc" + i].r = i;//给每个软件增加属性r (如果是AS3.0就不需要这不了,这里不赘述)
this["mc" + i].onHit = false;
//这里使用for给3个元件绑定拖动事件
this["mc" + i].onPress = function()
{
this.startDrag();
onKey = this.r;
};
this["mc" + i].onRelease = function()
{
this.stopDrag();
if (!this.onHit)
{
new Tween(this, "_x", Back.easeOut, _xmouse, this.oldX, 5, false);
new Tween(this, "_y", Back.easeOut, _ymouse, this.oldY, 5, false);
}
};
}
onEnterFrame = function ()
{
//使用听诊器 监听hit事件
for (var i = 1; i <= 3; i++)
{
if (this["mc" + i].hitTest(box))
{
this["mc" + i].onHit = true;
switch (i)
{
case 1 :
trace("第一个按钮碰撞 跳转");
//你的跳转代码写这里
break;
case 2 :
trace("第二个按钮碰撞 跳转");
//你的跳转代码写这里
break;
case 3 :
trace("第三个按钮碰撞 跳转");
//你的跳转代码写这里
break;
}
}
}
//trace(onKey);
};
TableDI
2024-07-18 广告
VLOOKUP是Excel中用于垂直查找的函数,其基本用法包括四个参数:1. 查找值:即在数据表首列中需要搜索的值。2. 数据表:包含查找值的单元格区域或数组。3. 返回值所在列数:指定返回查询区域中第几列的值。4. 查找方式:选择精确匹配... 点击进入详情页
本回答由TableDI提供
lg197794
2011-05-15 · 超过32用户采纳过TA的回答
知道答主
回答量:68
采纳率:0%
帮助的人:41.1万
展开全部
for (i=1; i<=3;++i) {
trace(i);
_level0["mc"+i].onPress = function() {
j=i;
trace("j="+j);

_level0["mc"+j].startDrag();
};
}
输入以上语句发现:j=4 于是只会拖动 mc4
以下代码可行:
this.onMouseDown = function() {
i = 1;
for (; ; ) {无限for 也可以写入 j=0;j>防止死循环上限(例如10000);++j
j1=this["mc"+i]._x<_xmouse;
j2=(this["mc"+i]._x+this["mc"+i]._width)>_xmouse;
j3=this["mc"+i]._y<_ymouse;
j4=(this["mc"+i]._y+this["mc"+i]._height)>_ymouse;

if (j1&&j2&&j3&&j4) {
trace(_xmouse+"---");
_level0["mc"+i].startDrag();
break;//去掉此句不会选择多个重叠的MC,反而编译器会当掉
} else {
trace(_xmouse);
trace(this["mc"+i]._x);
++i;

}
if(i>=4)
{
break;
}
}
};

最好在mc上写
on (press) {
startDrag(this);
}
经常不在线,所以有时会不回应,不好意思
追问
可以加个QQ好友么。一直想找个精通FLASH代码的朋友。我的QQ22991412
追答
不能,因为我结婚了,只能有亲戚,不能有朋友.
看楼下的,原来可以这样写.

参考资料: http://www.china.com.cn/info/marry/2009-08/17/content_18346278_3.htm

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式