Lingo魔法书--光标和行为

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

Director中光标也可以自己定义和制作.我们看看下面的一个例子:光标单击每个人脸就变成了一个动态的光标.移出按钮图片,光标就还原了.这样的效果如何做呢?

首先我们看一下光标控制语句.

cursor (角色名,遮罩名) --指定某个角色作为光标.角色必须是双色位图大小16X16。

cursor 光标号--光标代号

关于光标代号Flyingbird曾经给出了一张很好的图。当我们把Cursor 设置为0的时候为取消设置还原成为莫认得箭头。在本例中我们制作的时候就是使用了这条命令 cursor 0想下事件应该是什么呢?对了,是on Mouseleave me鼠标移开的时候还原光标。注意Cursor 200是将鼠标隐藏。这个属性会在下面的例子中使用。

 

还可以这样写 cursor(member \"角色名称\")。指定一个角色作为光标。我们在使用动画光标的时候就是制定了角色库中角色“woniu\".实现的语句是

On mouseUp me

  cursor(member \"woniu\")

end

这里顺便扯一下动画光标的制作。动画光标和彩色光标从Director 6.5才开始有的。可以使用一系列的位图做成一个动画的光标。位图大小必须小于32x32象素,大于这个尺寸会自动缩小到32x32。颜色必须是256色。制作的时候首先导入图片。象上面我们导入了3个图片。然后选择Insert--〉Media Element--〉Cursor系统出来对话框。在右侧选角色,然后按Add添加到光标中,按PReview可以预览。AutoMask系统会自动过滤白色。interval为自动切换的时间。

制作完毕之后,角色库中会多一个角色。下标是一个小的绿色光标。这就是我们要的动画光标。每个按钮的代码都是下面的代码。

on mouseup me
 cursor(member \"woniu\")
end
on mouseleave me
 cursor 0
end

至此,我们的工作好像做好了。是不是觉得还有点缺陷呢?有!每个代码都要复制/粘贴一遍,太麻烦了。于是我们想到了行为,Behavior。

Behavior是Director的一个重要概念。他可以大大方便Lingo的编写。特别是对于大量功能相同的代码尤其显著。简单的说Behavior的作用就是让你把编好的Lingo代码重复多次应用。Director中现在已经把帧脚本和Sprite的脚本作为Behavior了。凡是角色库中有图标的都是Behavior。

以本例为例子,编写好的脚本是角色1,鼠标拖拽这个脚本分别放在舞台上的三个圆圈对象上面,鼠标会变成加号表示可以拖,然后就可以了。这样就实现了编写一次应用多次。同样前面写的frame脚本Go the frame也可以直接拖拽到frame脚本通道中。其实Behavior远远没有这么简单。它的功能比现在使用的强大得多。我们在紧接教程中可以继续讲解。

这个例子是对光标的一种控制。这里光标是没有的也就是Cursor 为200。一个Sprite跟随着光标移动而移动。使用的是the mouseH和the MouseV分别获得当前的鼠标水平位置和垂直位置。整个电影只有1个Sprite

脚本写在frame脚本里面

on exitframe

 Sprite(1).locV=the MouseV --方块的垂直坐标跟着鼠标的垂直坐标。

 Sprite(1).locH=the MouseH --方块的水平坐标跟着鼠标的水平坐标。

 Cursor 200

end

为什么要写在frame脚本里面呢?因为这个动作要求不断触发,但是又不依赖于Sprite,这里没有用到任何需要Sprite来触发的动作。仅仅是对sprite进行操作。而frame脚本符合触发条件。虽然是go the frame 定住播放头,但实际上是播放头在原地打转,是一个循环。因此这里面的事件是不断触发的。