|
MUI Xtra也允许你这么做:建一个数据库来描述对话框,然后在程序中运行,Lingo中能实现这个功能的就是属性列表,完全不需要那种由横线和竖线组成的表格。本质上来讲,你要做的就是写一个属性列表来描述对话框,然后告诉MUI Xtra来显示它。
OK,下面这些就是你大概要做的步骤:
1,创建一个MUI Xtra实例。 2,建立一个属性列表来描述对话框窗口。 3,建立一个属性列表来描述对话框内容。 4,显示对话框。
你可以将这些步骤全部写在一个电影脚本的句柄里。下面我们逐个步骤来讲。
第一步:建立MUI实例
这一步是应用Xtra最普通的步骤,但是在这里,你应该将这个MUI实例声明为全局变量,用new()方法来创建一个实例,然后用objectp()来检查是否创建成功: -- 1. Create a MUI Xtra instance global oDialog
if not( objectP( oDialog )) then oDialog = new( xtra "MUI" ) if not( objectP( oDialog )) then oDialog = 0 alert "ERROR: Xtra instance failure." exit end if end if
如果失败的话,可能是因为你的Xtras文件夹中没有这个Xtra,从你的Director Xtras目录中拷贝一个放在你的Xtras目录中,就OK了。
当你创建实例之后,它自己会创建一些默认的属性列表来描述你的对话框。你可以用getWindowProplist(),getItemproplist(),getWidgetlist()来获得这些列表。这些方法每次返回的列表都是相同的,你所需要做的就是根据你的需要来改变这些列表。我们马上开始。
第二步:设置窗口属性。
告诉MUI你所需要的对话框窗口是一个简单的、分两部分的。第一部分,需要包含一个用getWindowPropList()获得默认的窗口的属性列表。这部分是所有对话框都相同的,但是第二部分将根据具体对话框来改变一些属性。在第二部分,你需要根据你的需要来改变第一部分那个属性列表:
lsWindow = oDialog.getWindowPropList()
After this line is executed, the value of lsWindow is
[ #type: #normal, #name: "window", #callback: "nothing", #Mode: #Data, #xPosition: 100, #yPosition: 120, #width: 200, #height: 210, #modal: 1, #toolTips: 0, #closeBox: 1, #canZoom: 0 ]
再重申一次,getWindowProplist()方法每次都得到相同的结果,如果你不想改,就不需要改。你可以用getWindowPropList()很容易的获得窗口的默认状态,所以你不需要每次都重新建立这个列表。现在,你所以需要的就是根据你的需要更新这个列表。
lsWindow.name = "My Dialog Box" lsWindow.callback = "myDialogCallback" lsWindow.xPosition = -1 lsWindow.yPosition = -1 lsWindow.width = 0 lsWindow.height = 0
在上面这个例子,通过设置#name来让对话框的标题栏显示"My Dialog Box";设置#xPosition,#yPosition为-1是为了让对话框显示在屏幕中央。设置#width,#height为0是为了自动设置对话框尺寸,具体值由这个对话框所包含的元素决定。设置#callback是要告诉Xtra当在这个对话框上进行交互的时候,响应的句柄名。在第四步时会详细讲解这个句柄。
注意#type属性有三个可选的值:#normal,#alert,#palette。默认是#normal,我个人从来未发现他们三个之间的区别,无论是在苹果还是在PC上。我相信不是这个Xtra中没有赋予#alert,#palette全部的功能,也许是我还没有努力研究他们的应用吧(自己翻译的,也许不是这个意思)。
另外还有其他一些属性不起作用,比如#tooltips,还有一些不能通用于所有平台,如#closebox,#canzoom。 本文不会对这些做任何解释,你可以在MUI的帮助文件中查询,最好自己试一下。
最后,#mode属性也有3个可选值:#data,#pixel,#dialogunit。这些值决定MUI如何排版对话框,默认的#data模式,MUI将不会做任何排版工作,#pixel模式中会给你提供像素级的排版控制。#dialogunit模式也允许你精确的控制,但是对话框单元会随着系统字体的改变而变化。我发现最简单的就是用#data或者#pixel模式。
上一页 [1] [2] [3] [4] [5] 下一页 |