FLASH下载

设为首页
繁體中文
闪客留言

 首页 | FLASH动画 | FLASH专辑 | FLASH短片 | FLASH游戏 | FLASH歌曲 | FLASH教程 | Flash播放器代码
您当前的位置:flash下载 -> FLASH教程 -> AS教程 -> 文章内容  
栏目导航 相关文章
· FLASH基础 · FLASH实例教程
· FLASH技巧 · AS教程


简单的拖拽拼图

作者:转载  来源:[闪客]  发布时间:2006-5-22 21:34:07  编辑人:[FLASH教程]

减小字体 增大字体


  好吧,还是先看看再说吧。请看右边的这个演示。尝试着用鼠标去移动奇怪形状的碎片,然后把它们放到下面去。您会发现:原来这是一个拼图(PUZZLE)游戏。

  在最开始的BETA版本的FLASH4里面曾经有过一个拼图的游戏,而且带有原始代码,可是不知道为什么后来在正式版本中反而没有了。不过,无所谓,现在,我们可以提供自己的。

  那么,这种效果是怎么制作出来的呢,判断坐标?不是这样的,因为在FLASH中,坐标还是很精确的,一般来说,没有人能把两个对象的坐标通过移动来达到绝对的温和。那么,是怎么实现的呢?就跟着我一点一点的开始做吧。

  这个项目需要用到FLASH中全部三种对象:图片(Graphic)、按钮(Button)和动画片段(Movie Clip)。

  首先,要 Import (输入)一张图片到新建立的文件里面,给它起个名字叫 flash。

  然后用 CTRL+B将其打散,就成了左边中间图片的摸样。使用 Lasso/Polygon Mode 工具(见图)把图片切割开来,就成了两个分离的碎片。

  有了碎片以后,我们真正的工作开始了。

  选择左边的碎片,按下 F8,会弹出建立新对象的窗口,我们管它叫 p1,同样,将右边的碎片做成名为 p2 的对象。

  下一步,制作按钮。按 CTRL+L 弹出 Library 窗口,选取 New Symbols(左下角的加号图标),在弹出的窗口中输入 b1,选取 Behavior 为 Button。

  这样,我们就可以定义我们的拖拽按钮了。

  看右边的图片,我们将已经制作好的对象 p1 拖到按钮的 Up 状态处,就可以了。这样,我们生成了一个不会变化的最简单的按钮。

  同样,用对象 p2 制作出按钮 b2。

  下面,我们开始制作最关键的东西:动画片段(Movie Clip)。其实很简单,同样是在 Library 窗口中添加新的对象,只不过这次是动画片段对象。取个名字叫 m1, Behavior 设为 Movie Clip,把我们制作好的按钮 b1拖动到这里来,时间条上的显示就像右图一样,就可以了。同样,用 b2 生成我们的动画片段 m2。

  下面,我们可以把碎片放在舞台上了,将 m1 和 m2 放到舞台上,再将 p1 放上去,然后调整 p1 的颜色属性(Modify/Instance/Color Effect),调整成下图所示的样子,就可以了。

  同样,将 p2 也拖上舞台,然后也调整成同样的颜色。并且把 p1 和 p2 吻合起来,底版就成了。

  下面开始修改 p1、p2、m1 以及 m2 的 Instance name,同样也是用 Modify 菜单的 Instance 选项来完成。(如右图所示)每个对象的 Instance Name 按照下面的约定:(注意, p1 和 p2 要强制变成 Movie Clip,然后再定义名称)

 

m1 - 1  

p1 - 11  

  m2 - 2

  p2 - 22

  如果一切完备,那么,我们的 Library 窗口应该像左边这样。

  好了,我们的准备工作已经完成了。下面开始脚本的编写。

  为了让鼠标可以拖动我们的碎片,我们现在要去修改我们的动画片段,先从 m1 开始。在 Library 窗口中双点 m1 对象名称前面的图标,出现编辑画面,然后再双点编辑画面中的按钮,会出现属性窗口。选择 Action。

  我们的需要是:当鼠标按下以后,一直按着就可以拖动对象。当松开的时候,又会放下对象。那么,脚本就可以这样来写:

On (Press)
  Start Drag ("/1", lockcenter)
End On
On (Release)
  Stop Drag
End On

如果按钮按下
 拖动 Instance 1


如果按钮松开
 停止拖拽

  这样我们就可以拖拽一个碎片了,很容易,不是么?可是怎么才能判断最后是否放对了地方呢?我们需要增加一些脚本到按钮松开的过程里。请看下面的脚本:

On (Press)
  Start Drag ("/1", lockcenter)
End On
On (Release)
  Stop Drag
  If (_droptarget eq "/11")
    Set Property ("/1", X Position) =
GetProperty ( "/11", _x )
    Set Property ("/1", Y Position) =
GetProperty ( "/11", _y )
  End If
End On

如果按钮按下
 拖动 Instance 1


如果按钮松开
 停止拖拽
 判断是否放到了正确的地点,正确的话:
  将被拖动对象的坐标设置成底版对象的坐标

  同理,再完成另外一个碎片的修改。

  这就是我们完整的脚本,由于 _droptarget 可以告诉我们,在鼠标松开时对象放置位置上的对象的名称,所以我们可以判断两个对象是否比较吻合。如果吻合的话,将拖拽对象的坐标修正就可以了。

  最后,为了防止影片不断循环,在整个 Movie 的第一个 Frame 要加一个 action = stop。

  感谢您看完我们的教程,有什么建议和意见请和我们联系

下载源文件

(完)

[] [返回上一页] [打 印]
上一篇文章:3D 鼠标跟随脚本详解
∷相关文章评论∷    (评论内容只代表网友观点,与本站立场无关!) [查看评论>>>]