8.7 使用MIAW

时间:2007-09-27 来源:IT在中国 编辑:春雨 作者:春雨 [ ]
  8.7 使用MIAW

使用MIAW

       MIAW的全称为Movie In A Window,即窗口中的电影的意思,它是Director中一份不同寻常的组成部分。通过使用它可以在当前舞台上打开另一个含有Director文件的多媒体影片。
       MIAW有很多用途。由于它们是相互独立的,并且也与舞台相互独立,因此它们的活动相对比较灵活,读者可以在任何需要它们的位置调用它们。本节主要向读者介绍一些常用的MIAW命令,以及一些利用MIAW创建窗口的一些方法。

8.7.1  创建MIAW

       Lingo语言控制窗口的难易程度是不相同的。如果想要打开一个窗口,以显示一些信息,只需要几行代码。而另一方面,要进一步运用MIAW,需要使用一整套现有的命令、函数、属性和特殊事件处理程序。无论是哪种情况,首先需要的是创建MIAW。本节将向读者介绍创建MIAW的方法。
       如果需要创建一个MIAW,则必须存在另一个Director文件。如果需要一个较小的窗口,则还需要事先调整窗口的尺寸大小,并为其指定一个合适的名称(该名称需要在Director中进行调用)。下面的几行代码将调用一个名称为alet的Director电影窗口:
miawobj=window(“演示窗口”)
miawobj.filename=”alet.dir”
maiwobj.visible=true
       当我们通过消息窗口,或者利用电影脚本调试程序时,系统将自动打开名称为alet的Director影片,其标题名称为“演示窗口”。如果此时读者利用下面的代码打印输出,则会其标题名称:
put miawobj
--(window “演示窗口”)
       实际上,早在miawobj=window(“演示窗口”)一行代码中,我们已经实例化了一个变量maiwobj,通过使用该变量我们还可以执行其他的操作,例如使用下面的一句可以分别关闭或者删除maiwobj对象所指向的窗口:
       close(miawobj)
       forget(miawobj)
       有时,为了方便程序的编写,或者需要在一个程序中多次调用MIAW,这就需要我们将其定义为一个处理例程。通常情况下,我们可以利用下面的子例程来执行一个特定的窗口的调用:
on startMIAW
global miawobj
miawobj=window(“演示窗口”)
miawobj.filename=”alet.dir”
miawobj.visible=true     --调用一个影片窗口,并使其显示在舞台上
end
 
       on endMIAW
global miawobj
close(miawobj)        --调用完毕后,利用close()关闭窗口
forget(miawobj)
end
       这是一个完整的调用过程,首先利用一个实例化的参数调用影片窗口使其显示出来,然后再利用endMIAW子例程将其关闭。不过,在关闭的过程中需要注意:close()仅仅是将窗口关闭,并没有从内存中清除。如果需要彻底卸载某个窗口,则需要使用forget()函数将其清楚掉。

8.7.2  MIAW属性简介

       对于MIAW而言,它也存在一系列属于自己的属性,通过使用这些属性可以有效地帮助我们管理和控制窗口。为此,在这里将向读者介绍一些常用属性的功能以及常用的使用方法,详细简介如下:
  •         visible  该属性用于显示或隐藏窗口。另外,隐藏的窗口也能执行Lingo程序。
  •          filename  与用于MIAW的Director影片相对应的文件名。如果计算机正在上网,也可以使用某个网址。
  •          name  该属性是MIAW的名称。这是窗口的缺省标题,并在window结构里用来指代这个窗口。
  •          title  该属性用在窗口的标题条里以代替name属性。
  •          titleVisible  当MIAW的类型为-1时,该属性确定MIAW是否显示标题条。
  •         windowType  可以把该属性设置为-1、0、1、2、3、4、5、8、12、16或49。表8-3列出了Windows平台下这些类型的含义。
表 8-3  窗口类型简介
类型编号
描述
可移动
关闭按钮
最大化按钮
最小化按钮
-1
默认
0
标准
1
警告框
2
矩形
3
矩形
4
文件
5
文件
8
文件
12
文件
16
文件
49
面板
  •          drawRect  这个功能强大的属性可以用来缩放MIAW,包括其中的位图。
  •         rect  这个属性使我们能够剪裁或扩大MIAW,但不发生缩放。
  •          sourceRect  返回drawRect或rect变化之前的MIAW的原始坐标。
  •         modal  当某个窗口的这个属性被设置为TRUE时,这个窗口将拦截所有的输入信息,阻止包括舞台在内的其他窗口接收鼠标或按键信息,直至关闭该窗口或该窗口的modal被设置为FALSE时为止。
      除了上述的主要属性外,还有一些常用的Director命令,例如open、close等,下面将逐一向读者介绍这些命令的功能。
  •         open  创建一个新的MIAW,并返回其变量。例如下面的例子将打开一个名称为miawobj的窗口:window(“miawobj”).open()
  •         close  隐藏一个已有的MIAW,并返回它的变量。不过,此时的窗口仍然驻留在内存当中。
  •          forget  该命令可以把MIAW从内存里清除。
  •         moveToFront  该命令可以把MIAW变成最顶层的窗口。
  •          moveToBack  该命令可以把MIAW变成最底层的窗口。
  •         tell  该命令可以向MIAW发送一个Lingo命令或处理程序的一次调用。它也可以用来向MIAW发送一组Lingo命令。

8.7.3  系统属性简介

       除了上面所介绍的一些属性外,还存在着另外的一些常用属性。它们的使用频率虽然没有上面所介绍的属性的使用频率高,但是同样也可以实现一些特别有用的功能,例如它们可以告诉我们哪些窗口存在,哪些窗口处于激活状态以及哪个窗口位于最高层。关于它们的简介如下:
  •         the windowList  该属性返回一个列表,其中包含当前全部MIAW,包括不可见的MIAW。如果当前没有窗口,则返回一个空列表。
  •         the activeWindow  返回当前处于激活状态的窗口的引用变量。如果舞台是当前处于激活状态的窗口,则返回(the stage)。
  •         frontWindow  返回处于最顶层的的窗口的引用变量。如果是舞台,则返回(thestage)。
  •         windowPresent()  当为该函数赋予某个窗口的名称时,它可以告诉我们这个窗口是否存在。它只能使用窗口名称,不能使用引用窗口的变量。
       我们可以编写一段程序,利用the windowList关闭所有MIAW。它从the windowList里得到窗口的个数,然后用close和forget命令关闭所有窗口:
on closeAllMIAWs
n=count(the windowList)
repeat with i= 1 to n
close window(1)
forget window(1)
end repeat
end
       和其他的元素控制指令相同,MIAW也存在很多特殊的事件处理程序,其中包括典型的窗口事件,例如打开、关闭和移动窗口等等。如果读者要使用MIAW,那么就必须使用下面的一些事件,关于它们的简介如下:
  •          on activateWindow  如果窗口当前没有被激活,而用户点击它想要激活它时,就调用该处理程序。
  •         on colseWindow  当用户点击关闭按钮关闭窗口,或用close命令关闭窗口时,就调用该处理程序。
  •          on deactivateWindow—如果该窗口是处于激活状态的,而用户点击了其他窗口,则调用该处理程序把窗口变为非激活状态。
  •         on moveWindow  用户每次在屏幕上拖动MIAW时,该处理程序被调用。调用的具体时间是在用户释放鼠标按钮的那一刻。
  •         on openWindow  当MIAW初次被打开时,该处理程序被调用。
  •          on resizeWindow  每当用户拖动窗口的顶角或边框重新调整窗口的尺寸时,该处理程序被调用。
  •         on zoomWindow  每当用户点击缩放、最大化或最小化按钮时,该处理程序被调用。
       关于程序的这些处理例程,读者可以利用简单的脚本进行调试,以加深对它们的印象。

[1] [2] 下一页


访问() 相关评论() 打印资源 返回顶部 加入收藏

最新评论