Lingo魔法书--Sprite玩具工厂

4/7/2006来源:Director教程人气:9196

上次我们学习的是导航命令,可以制作电影的整个导航.这次我们要带大家一起来到SPRite玩具工厂.首先看看下面的4个Sprite玩具.

Sprite(号码).rotation --rotation是Sprite的一种属性,用来确定Sprite旋转的角度.

Sprite(号码).locv --locv是Sprite的一种属性,用来确定Sprite的垂直位置,是Sprite注册点(Director术语叫做regpoint关于regpoint等下会解释)到舞台上边界的距离,单位像素.

Sprite(号码).locH--locH是Sprite的一种属性,用来确定Sprite的水平位置,是Sprite注册点到舞台左边界的距离,单位是像素.

Sprite(号码).blend--blend是Sprite的一种属性,用来确定Sprite的透明度从0-100.0完全透明,100完全不透明.

Sprite(号码).skew --skew是Sprite的一种属性,用来确定Sprite斜切的角度.

下面我们就来看看这个程序是如何编制的.

首先在屏幕上绘制四个图形,使用Ctrl+5打开画板来绘制而不是工具栏上的工具绘制.然后分别拖拽到4个通道中.首先我们确认核心的方法,

第一要让画面上的四个物体定在画面上而不消失.我们必须停下播放头,接下来的我不说你也知道了.在这帧添加一个帧脚本定住播放头.使用

on exitframe

  go the frame

end

第二我们考虑效果.

就是.鼠标在Sprite上的时候Sprite不断变化.

脚本类型:Sprite.我们首先可以确定这里要操作某sprite让他去做一个动作.所以我们必须使用Sprite脚本.

事件:光标在对象内时生效,因此我们用mousewithin.(注这里我们解释一下me是什么意思.me就是表示当前对象.在帧脚本中me就表示当前帧,在sprite脚本中me就是当前sprite,反正你把他当成\"我\"解释就对了.

命令:不断的变化源自于自身属性的数值不断自加.我们按照第一个来分析.不断旋转,就是自身角度每次不断增加.我们可以选择.

sprite(1).rotation=sprite(1).rotation+10

过程分析:每次鼠标进入sprite(1),Sprite(1)的自身角度就增加10度.这样慢慢就转动起来了.

 

  依次类推.第二个红方块Sprite脚本是

on mousewithin me
  sprite(2).locv=sprite(2).locv+1  --Sprite垂直距离自加1像素
  sprite(2).loch=sprite(2).loch+1  --Sprite水平距离自加1像素
end

--这样就实现了红方块的位移.

第三个紫色矩形Sprite脚本是

on mousewithin me
 sprite(3).blend=sprite(3).blend-10  --透明度自减10
end

第四个绿方块Sprite脚本是

on mousewithin me
  sprite(4).skew=sprite(4).skew+1  --自变形1度
end

 

乘此机会我们再介绍一下其他属性我们也可以在属性面板中找到.

 

Sprite(号码).height --Sprite的高度

Sprite(号码).width--Sprite的高度

Sprite(号码).left--Sprite构成的矩形的左边和舞台左边距离.

Sprite(号码).right--Sprite构成的矩形的右边和舞台左边距离.

Sprite(号码).top--Sprite构成的矩形的上边和舞台顶部距离.

Sprite(号码).bottom--Sprite构成的矩形的上边和舞台顶部距离.

下面这张示意图可以表明问题.

我们可以使用Message窗口进行调试直接使用Put Sprite(号码).属性就可以察看属性.属性面板也是观察的好地方.我们看看里面如何写的.

x表示loch也就是图中的注册点方块当中一个点的横坐标.

y表示locV也就是图中的注册点方块当中一个点的纵坐标.

W表示Sprite宽度 也就是Sprite(号码).width

H表示Sprite高度 也就是Sprite(号码).height

接下来是旋转也就是Sprite(号码).rotation 和斜切Sprite(号码).skew

l是left r 是right仔细计算会发现. right-left=width

t是top b是bottom 计算发现bottom-top=height

下面有一个思考题,如果要求你做一个每次单击就会变小的方块如何操作?

提示:事件我们可以用on mouseup 属性可以用高宽属性.