首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将控制功能添加到由已编译的电影剪辑构建的闪存电影中

如何将控制功能添加到由已编译的电影剪辑构建的闪存电影中
EN

Stack Overflow用户
提问于 2010-10-15 11:32:53
回答 1查看 1.7K关注 0票数 1

我设计了一部很长的闪光灯电影,是用来做广告的。

电影是在几个闪存文件中设计的,每个都被组合成一个电影剪辑,然后所有的电影剪辑都被移动到主文档中。

每个电影剪辑都在一张幻灯片上。

它们会一直播放,当剪辑到达末尾时,我使用了actionscript root.gotoAndPlay(x),其中x是序列中下一个剪辑的幻灯片号,我的时间线如下所示:

我需要添加一个带有四个按钮的控制功能:

  • rewind

  • fast
  • play
  • pause

forward

我该怎么做?我只能找到在线资源,允许控制功能,在同一时间线上的一切,而不是控制电影剪辑。

我对actionscript几乎没有经验,但是在其他语言(JS和PHP)方面有经验。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-10-27 16:32:20

首先,给你的每个场景电影剪辑一个实例名称。让它成为您可以解析的东西,如"clip_1“、"clip_2”、"clip_3“等等。

第二,在有场景剪辑的每一帧上放置框架标签--与电影剪辑命名类似:"scene_1“、"scene_2”等等。

现在,在主时间线中创建一个新的actionscript层,并确保它的时间线延伸到主时间线的末尾。它将自动在框架1中有一个空白的关键帧。

我们将创建一个变量来保存当前正在播放的剪辑的引用:

代码语言:javascript
复制
var currentClip:MovieClip = null;

有许多方法可以跟踪当前剪辑--如果您还没有提前计划实现,那么所有这些方法在某个时候都是很乏味的。我将尝试我认为对you来说最容易实现的方法。

在您所在的每个动作框架中,您将添加以下代码:

代码语言:javascript
复制
currentClip = eval("clip_x");

您需要在每个框架中更改"clip_x“中的x值,以匹配帧中的剪辑数。

现在,回到您创建的第二个操作层--我们将在这里处理rev、ff、play和暂停操作。

代码语言:javascript
复制
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按钮时“跳转”的帧数。

代码语言:javascript
复制
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事件中。

祝好运!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3941811

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档