我是新游戏开发人员,我正尝试在flash-cs5中创建一个简单的游戏。我在时间线上创建了3个补间动画。我正在尝试停止特定的补间动画,当其他tweeens正在运行时点击补间的动画片段,当再次单击停止的动画片段时,我想要在其他tweeens正在运行时恢复补间动画。特定动作补间停止&恢复
感谢高级。
我是新游戏开发人员,我正尝试在flash-cs5中创建一个简单的游戏。我在时间线上创建了3个补间动画。我正在尝试停止特定的补间动画,当其他tweeens正在运行时点击补间的动画片段,当再次单击停止的动画片段时,我想要在其他tweeens正在运行时恢复补间动画。特定动作补间停止&恢复
感谢高级。
以下假设您在每个动画补间中都有自己的动画片段。我不知道任何停止一个补间的方法,而让另一个在单个动画片段上播放(或者如果它们各自在主舞台上)。
也就是说,你可以很容易地停止和开始动画。以下是如何停止播放中的补间动画的示例,然后从该点开始恢复。
在此示例中,“myMovieClip”是我们正在使用的影片剪辑。我们将单独留下其余的动画片段,因为它们将继续自己玩。我还假设myMovieClip默认播放。
以下是在AS3中。将其放置在主舞台的“动作”面板上(如果您有多个帧,则为第一帧)。
此外,请确保您已命名您的MovieClip。为此,请在设计模式中单击舞台上的MovieClip,然后单击“属性”。箱子上应该有一个文本输入框。在那里写出您想要的MovieClip名称。
//Declare a boolean variable that determines whether or not the movieclip timeline is playing.
var ClipPlaying:Boolean = true;
//Add the mouse click event listener to the movie clip.
myMovieClip.addEventListener(MouseEvent.CLICK, StopOrStartClip);
//Declare the function for the above event listener.
function StopOrStartClip(evt:MouseEvent):void
{
//Switch statements are my personal favorites...they're more streamlined than if statements.
switch(ClipPlaying)
{
//If the clip is playing it, we stop it and set ClipPlaying to false.
case true:
myMovieClip.stop();
ClipPlaying = false;
break;
//If the clip is not playing, we start it and set ClipPlaying to true.
case false:
myMovieClip.play();
ClipPlaying = true;
break;
}
}
这里要记住的最重要的功能是:
myMovieClip.stop();
这在当前位置冻结动画。
myMovieClip.play();
这会从您当前的位置恢复您的动画播放。
当您使用其中任何一种时,请记得将“myMovieClip”替换为您的影片剪辑的名称!
顺便说一句,略有无关,我强烈推荐本书ActionScript 3.0 Game Programming University来学习如何创建Flash游戏。
您实际上不需要5个不同的事件侦听器,函数或变量;你可以只让一个函数来处理这一切:
stage.addEventListener(MouseEvent.CLICK, stageClick);
function stageClick(event:MouseEvent):void {
//I prefer "if" statements
if (event.target == myMovieClip1) stuff here;
else if (event.target == myMovieClip2) stuff here;
else if (event.target == myMovieClip3) stuff here;
else if (event.target == myMovieClip4) stuff here;
else if (event.target == myMovieClip5) stuff here;
}
如果需要,我可以添加更多的细节,但前这个问题是由三年所以可能不会。
嗨JasonMc92,谢谢你的回复。这是有帮助的,但实际上我想要的是,在舞台上,我有5个补间,当玩家点击其中任何一个动画时必须停止(而其他人正在运行),并且如果相同的影片剪辑正在点击它必须是恢复(不干扰其他电影剪辑)。我在这里给出的例子只有1,所以在我的情况下,我需要5个函数,像这个1,或者我可以在这个函数中使用所有影片剪辑和补间循环。如果是这样,我如何循环所有这些补间。谢谢 – 2012-03-26 01:08:05
好的,我想我知道你在说什么,但是让我检查一下......你有五个动画片段,当你点击一个,当它正在播放时暂停,或者如果它暂停,则恢复,其他不受该点击的影响。正确?如果是这样,我可以编辑来解决这个问题。 – CodeMouse92 2012-03-26 05:09:50
是的,没错。谢谢 – 2012-03-26 09:25:20