使影片剪辑在下降到一定深度后自动恢复
Posted
技术标签:
【中文标题】使影片剪辑在下降到一定深度后自动恢复【英文标题】:make a movie clip come back up after going down to a certain depth automatically 【发布时间】:2014-04-01 13:45:19 【问题描述】:您好,请看一下代码。当我按下键盘时,对象会下降,但是我想要的是,当它达到一定深度时它应该会回来..任何帮助将不胜感激,谢谢
//rope coding
var rope = MovieClip(this.root).boat_mc.rope_mc;
var ropeMove:Boolean = false;
stage.addEventListener(Event.ENTER_FRAME, ropeCode);
stage.addEventListener(KeyboardEvent.KEY_UP, onSpacebarUp);
function onSpacebarUp(e:KeyboardEvent):void
if (e.keyCode == Keyboard.SPACE)
ropeMove = !ropeMove; // toggles ropeMove (i.e. if it's true, sets it to false, and vice versa)
function ropeCode(e:Event):void
//check direction of rope
if(yDirection)
rope.y += ropeSpeed;
else
rope.y -= ropeSpeed;
// move the rope
if( ropeMove )
if( rope.y < 230)
yDirection = true;
trace(rope.y);
// stop moving if we've gone too far
else if (rope.y > 230)
yDirection = false;
【问题讨论】:
【参考方案1】:您有 2 次检查,例如
if( rope.y < 230)
和
if( rope.y > 230)
我认为当 y 为 230 时,您的动画可能会卡住 所以让其中一个来测试平等,比如
if( rope.y < =230)
或添加第三种情况
else if(y==230)
编辑: 添加一个名为 yDirection 的新变量/字段
var yDirection:Boolean=true;
当你想改变方向时翻转这个标志
if( rope.y <=0)
yDirection=true;
else
yDirection=false;
if(yDirection)
rope.y=+=speed;
else
rope.y-=speed;
EDIT2 嗨,以前的编辑有一个错误,将rope.y
EDIT3 解决方法很简单,您必须检查ropeMove 值,
if(ropeMove)
if( rope.y <=0)
yDirection=true;
else
yDirection=false;
if(yDirection)
rope.y=+=speed;
else
rope.y-=speed;
你的问题很基础,所以你应该学习算法的基础知识,
【讨论】:
不,不幸的是,它一跳到深度就开始返回,然后立即返回并进入循环 现在影片剪辑开始自行下降并继续播放..没有任何反转它甚至不等待空格键被点击大声笑,请检查上面的新代码 看到问题是当我将布尔值声明为真或假时..它会自动开始上升或下降。 感谢它的工作,是的,你是对的,我需要改进我的编码。以上是关于使影片剪辑在下降到一定深度后自动恢复的主要内容,如果未能解决你的问题,请参考以下文章