我是游戏开发的新手,我试图在flash-cs5中创建一个简单的游戏。我在时间轴中创建了3个补间动画。我正在尝试停止特定的补间动画,当其他tweeens正在运行时单击补间的动画片段时,再次单击停止的动画片段时,我想在其他tweeens正在运行时恢复补间。
感谢先进。
答案 0 :(得分:0)
以下假设您在其自己的动画片段中有每个补间动画。我不知道有什么方法可以阻止一个补间,而另一个补丁在一个动画片段上播放(或者如果它们都在主舞台上)。
那就是说,你可以很容易地停止和开始动画。下面是如何停止补间动画播放的示例,然后从该点恢复它。
在示例中,“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游戏。
答案 1 :(得分:0)
您实际上不需要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;
}
如果需要,我可以添加更多详细信息,但这个问题来自三年前,可能不是。