素材图片酷 图酷镜像二 | 壁纸酷 壁纸镜像二 | 写真扫图酷 | Free Wallpaper | 贴图论坛 | ·设为首页 ·加入收藏
您现在的位置: 图酷 >> 自习室 >> 多媒体制作 >> Director >> 教程正文

  没有公告


用Director控制动画GIF
作者: Atla(翻译)
教程来源: 奥古多媒体
教程等级:         ★★★
教程录入: 烤焦面包
教程审核: 烤焦面包
添加时间: 2004-12-3
点击次数:
字体选择: 【字体:
相关操作: 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
热门信息:
推荐内容:

动画GIF可以非常方便的用在你的Director作品中。它们很小,相对的比较容易建立,而且也可以用在Web页面里。所以如果你正在建立一个Shockwave短片并把它和Web页放在一起,那么你把动画GIF用到Director里,你就会发现它可以完成多么完美的场景。但是一旦你把动画GIF放进你的电影里,你可能会想到要增加一些控制方法以便于关闭它们。首先,你要从基础开始。

  开始,停止和重复

  这三个基本的Lingo命令是用来控制动画GIF的暂停,继续和重复的。当用这些命令的时候,你需要紧记的是:它们只能与一个sprite在关联中一起用。例如,你可以说:

sprite (10).resume ()

或者

sprite (10).pause ()

  然而,在涉及到一个cast成员的时候,你不能用这些功能。所以如果你输入member (‘‘animGIF‘‘).resume (),Director会返回一个错误信息,里面会说在对象中没有找到处理者。

  在电影中使用暂停和继续的一个简单的方法就是建立一个行为,你要把它放进动画GIF中。这个行为可以使正在播放的GIF暂停,也可以使暂停的GIF开始播放。这个行为的原代码如下:

property pPlayState

on beginSprite me
  
  pPlayState = true
  me.updateGIF ()
  
end

on mouseUp me
  
  pPlayState = not pPlayState
  me.updateGIF ()
  
end

on updateGIF me
  
  if pPlayState then
    sprite (me.spriteNum).resume ()
  else
    sprite (me.spriteNum).pause ()
  end if
  
end

  这个行为开始于设置pPlayState变量为真,然后会呼叫updateGIF处理者。这个处理者就会检查pPlayState是否为真。如果为真,那么它就会播放动画GIF,否则它就会暂停动画GIF。最后,无论何时,只要你点击GIF,它都会固定pPlayState的值并且以呼叫ipdateGIF处理者来确定是播放还是暂停。

  控制动画GIF的速度

  如果你想要控制一个动画GIF的速度,那么这里有两条Lingo语句你需要使用:playBackMode 和 fixedRate。

  PlayBackMode语句有三个不同的选项来控制一个动画GIF如何播放。第一个选项,#normal,用动画GIF本身的定时信息来确定帧的的播放时间。第二个选项,#lockStep,像Director电影中的Score一样以同样的速度播放动画GIF的每一帧。这个选项用于确认动画与你电影中的基础帧动画同步。这个选项的基本意思就是说如果你的动画GIF有不同长度的帧,那么在播放时就会不同步,直到playBackMode被设置成#normal。

  playBackMode的最后一个选项是#fixed。当你把一个动画GIF的playbackMode设置成#fixed,那么你就可以通过另一个叫fixedRate的Lingo特性来控制回放(playback)。fixedRate特性一个数字,它描述一个动画GIF的单独帧的速度。你必须记住当你设置fixedRate时,它的值必须是一个整数而且不能为0—它至少是1。如果你想停止动画GIF,你必须用暂停命令。

  关于暂停,继续和重复还有playBackMode和fixedRate特性,它们最大的不同在于playBackMode 和fixedRate是cast成员中的特性,而不是sprite。所以在你的代码中你必须写明:

member (‘‘animGIF‘‘).playBackMode = #fixed
member (‘‘animGIF‘‘).fixedRate = 20

But if you tried to say

sprite (10).playBackMode = #fixed

  并且在sprite 10中的成员不是一个动画GIF,那么你将得到一个错误信息。

  当你把所有的事情放在一起做时,你会吃惊于你可以如此控制一个动画GIF。这里有一个电影可以示范action中这里提到的Lingo。(相关附件请点击这里下载)

  在你的Director电影中使用动画GIF是减小文件大小的一个有效的方法,并且潜在的节约你大量的时间,因为你可以使Director中己存在的动画GIF得不到休息的时间。动画GIF的唯一的缺点就是你不能完全的控制它。你不能让一个动画GIF跳到一个特定的帧上,而且你不可能轻易的知道哪个帧是在动画GIF上的。如果你需要在你的程序中加入这种功能,那么你有两个选择。你将要用位图和电影遁环来重做Director里的动画GIF或者你在Director里可以以Quicktime movie的格式导入动画GIF。但是这个最后的选择要求用户的机子里安装了Quicktime。

  • 上一篇教程:
  • 下一篇教程:
  • ::版权和投稿说明::
    • 任何媒体、网站或个人转载、链接、转贴或以其他方式复制发表本站文章,在使用时务必注明“稿件来源:图酷”及“www.tucoo.com”字样,多谢。
    • 本站已注明“来源”的文章均为转载稿,本站转载出于传递更多信息之目的。如本站转载稿涉及版权等问题,请来信与本站联系。
    • 如果您有自己原创的作品,请向我们投稿哦!您可以通过Email:gogocat@21cn.com投出自己的作品,赶快行动吧!
    • 如果觉得我们的资源有用,请推荐给朋友,谢谢!
    ::相关教程::
    使用visible时要不要宣告puppetSprite
    如何可以在Director中侦测键盘的输入
    Case指令在Director中的应用
    什麽是Sprite
    Director中几种Scirpt
    Xtra系列--人性助手Msagnet
    MCI指令在DIRECTOR 中的应用
    用面向对象的方法在DIRECTOR中实现滚动条
     
    网友评论:(评论内容只代表网友观点,与本站立场无关!) 发表评论