flash 8.0中影片名为a1,我想它做自由下落运动,不用缓动。 按钮中输入如下,有啥错?点击按钮不会动。

on(release){for(i=1;i<0;i++){a1._y+=i;}}是我搞错了。应该是:on(release){for(i=1;i<10;i++){a1._y... on(release){
for(i=1;i<0;i++){
a1._y+=i;
}
}
是我搞错了。应该是:
on(release){
for(i=1;i<10;i++){
a1._y+=i;
}
}
我按一下按钮,它用了一帧就移动完毕了。怎样才能使影片多帧移动,就是这个自由落体运动。
展开
教育技术老牛
2011-10-26
知道答主
回答量:6
采纳率:0%
帮助的人:6.4万
展开全部
首先你的思路有问题。
你想通过一个for循环来实现影片剪辑某属性的连续改变是麻烦的。以你上面的思路,在for循环中的a1._y+=i语句的下面,还要加上一个时间暂停函数。因为计算机执行循环速度远比你的视觉暂留要快。所以就得到了你上面问的问题。它一帧就移动完毕了。而且你的a1._y+=i这个语句也有问题。在循环的时候,a1的y属性不是每次加1像素,而是按照第一次加1,第二次加2,第三次加3……第10次加10的方式来执行的。
下面看看我的思路
放弃fot循环吧
用帧循环来做

on (release) { //这个不用解释了吧
my=this._y //记录当前a1的y坐标。我是直接在小球也就是a1上做的动作,所以this就代表a1。
onEnterFrame = function(){ //这个叫做帧循环。即按照影片属性中设置的帧频的速度,反复执行此帧
b=10 //b为步长
this._y+=b; //a1的y属性每次按步长增加
if((this._y-my)>=100){onEnterFrame = null } //条件判断,当a1下落了100个像素后,停止帧循环。
}
}

你可以在主时间轴上任意画一个图形并转换为影片剪辑。然后点击该剪辑添加以上动作。
本人flash8亲测成功。
632326857
2011-10-26 · TA获得超过122个赞
知道小有建树答主
回答量:162
采纳率:0%
帮助的人:190万
展开全部
for()语句中的条件写错了:
第一个:i=1,是给变量赋初值;
第二个:i<0,是判断是否成立,成立就执行后面的代码,不成立就不执行后面的代码。
第三个:i++,是for语句执行后,变量的变化。
所以,你给i赋1,再判断i<0,明显不成立,所以就直接跳过,
你那代码其实什么也不执行。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
谁也没我有性格
2011-10-25 · TA获得超过3036个赞
知道大有可为答主
回答量:2588
采纳率:66%
帮助的人:2048万
展开全部
i=1了,又让它小于0 (i<0),还要让他正增长( i++), 你说有什么错
追问
写错了,应该是:
on(release){
for(i=1;i<10;i++){
a1._y+=i;
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
就是要飞啊
2011-10-25
知道答主
回答量:23
采纳率:0%
帮助的人:17万
展开全部
首先for(i=1;i<0;i++){
这句就有逻辑上的错误。。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式