我设计了一部很长的闪光灯电影,是用来做广告的。
电影是在几个闪存文件中设计的,每个都被组合成一个电影剪辑,然后所有的电影剪辑都被移动到主文档中。
每个电影剪辑都在一张幻灯片上。
它们会一直播放,当剪辑到达末尾时,我使用了actionscript root.gotoAndPlay(x),其中x是序列中下一个剪辑的幻灯片号,我的时间线如下所示:

我需要添加一个带有四个按钮的控制功能:
forward
我该怎么做?我只能找到在线资源,允许控制功能,在同一时间线上的一切,而不是控制电影剪辑。
我对actionscript几乎没有经验,但是在其他语言(JS和PHP)方面有经验。
发布于 2010-10-27 16:32:20
首先,给你的每个场景电影剪辑一个实例名称。让它成为您可以解析的东西,如"clip_1“、"clip_2”、"clip_3“等等。
第二,在有场景剪辑的每一帧上放置框架标签--与电影剪辑命名类似:"scene_1“、"scene_2”等等。
现在,在主时间线中创建一个新的actionscript层,并确保它的时间线延伸到主时间线的末尾。它将自动在框架1中有一个空白的关键帧。
我们将创建一个变量来保存当前正在播放的剪辑的引用:
var currentClip:MovieClip = null;有许多方法可以跟踪当前剪辑--如果您还没有提前计划实现,那么所有这些方法在某个时候都是很乏味的。我将尝试我认为对you来说最容易实现的方法。
在您所在的每个动作框架中,您将添加以下代码:
currentClip = eval("clip_x");您需要在每个框架中更改"clip_x“中的x值,以匹配帧中的剪辑数。
现在,回到您创建的第二个操作层--我们将在这里处理rev、ff、play和暂停操作。
function Play() : Void {
if(currentClip!=null && currentClip!=undefined) {
currentClip.play();
}
}
function Pause() : Void {
if(currentClip!=null && currentClip!=undefined) {
currentClip.stop();
}
}好的,我们有播放和暂停的内容。如何处理FF和REV将取决于您希望用户如何与这些按钮交互。通常有两种方法:“跳跃”和“扫描”。“跳转”方法在每次按下按钮时,将游戏头向前/向后移动预定的帧数。“扫描”方法移动游戏头前进/后退X帧每秒,只要按钮被按住,其中X是你的电影的fps率。
我认为跳跃方法对您来说是最容易实现的:
var JUMP_RATE = 30;//这是每次按ff或rev按钮时“跳转”的帧数。
function FF() : Void {
if(currentClip!=null && currentClip!=undefined) {
if(currentClip._currentFrame + JUMP_RATE < currentClip._totalFrames)
currentClip.gotoAndPlay(currentClip._currentFrame + JUMP_RATE);
else
currentClip.gotoAndStop(currentClip._totalFrames);
}
}
function REV() : Void {
if(currentClip!=null && currentClip!=undefined) {
if(currentClip._currentFrame - JUMP_RATE > 0)
currentClip.gotoAndPlay(currentClip._currentFrame - JUMP_RATE);
else
currentClip.gotoAndPlay(0);
}
} 现在您要做的就是创建按钮并将函数调用添加到它们的onPress或onRelease事件中。
祝好运!
https://stackoverflow.com/questions/3941811
复制相似问题