| 当前所在位置:-主站新闻系统-教师-课件制作 |
问题分析:
让用户自己设置文本的样式,有点像Word中的“设置字体”对话框。必须能够显示出字体列表、字号、字体颜色等信息,供用户来选择,同时能够即时预览效果。要实现这样的功能,借助于Authorware外部扩展函数文件WinCtrls.u32是很方便的。使用WinCtrls.u32中的函数我们可以在Authorware中显示很多标准的Windows控制,这些控制提供了Windows中一些设置的标准接口,功能非常强大。为了方便Authorware程序开发者的使用,Authorware 6中提供了有关WinCtrls中函数使用的知识对象(Knowledge Object),不过为了更深入地理解WinCtrls的使用,我们还是自己来编写代码。
技术要点:
本例要用到WinCtrls中的三个重要函数wcDisplayControl、wcGetPropertyValue和wcSetPropertyValue
现对其使用方法分别介绍如下:
1. wcDisplayControl函数用于显示一个标准的Windows控制组件,语法为:
Id := wcDisplayControl(Left, Top, Width, Height, "ControlName", "ChangeEventVarName")
Left和Top分别用来确定组件的左上坐标,Width和Height分别用来确定组件的宽和高。ControlName是组件的名称,ChangeEventVarName是一个变量,用来保存组件的当前值。
如Memo_ID:=wcDisplayControl(270, 110, 300, 100, "Memo", "Memo_Var")的意义为从坐标点(270,110)起显示一个长为300像素,宽为100像素的段落文本(Memo),其中文本的内容保存在变量Memo_Var中。
如果成功则返回该Windows控制组件的ID值,否则返回0。
2. wcGetPropertyValue函数用于获取控制组件指定属性的值,语法为:
Value := wcGetPropertyValue(Id, "PropertyName"),
如:Font_Var:=wcGetPropertyValue(Font_ID,"Text")意义为获取由Font_ID指定的组件的Text属性的值,并保存在变量Font_Var中。
3. wcSetPropertyValue函数用于设置控制组件指定属性的值,语法为:
wcSetPropertyValue(Id, "PropertyName", "Value")
如wcSetPropertyValue(Memo_ID,"Text", Font_Var)意义为将变量Font_Var的值设置给由Memo_ID指定的组件的Text属性。
由于WinCtrls.u32可调用的控制组件和相关属性很多,所以在具体使用时请参考Authorware的在线文档。
制作步骤:
1. 新建一个Authorware文件,命名为“Myfont.a6p。
2. 向流程线上拖入一个计算图标,命名为“Create Property”,其代码如下:
ResizeWindow(600,300) ?-调整窗口大小
--创建段落文本
Memo_ID:=wcDisplayControl(270, 110, 300, 100, "Memo", "Memo_Var")
wcSetPropertyValue(Memo_ID, "FontSize", "20")
wcSetPropertyValue(Memo_ID, "WordWrap", 0)
wcSetPropertyValue(Memo_ID, "Border", "1")
wcSetPropertyValue(Memo_ID, "Alignment", "Center")
wcSetPropertyValue(Memo_ID, "3D", "0")
--定义坐标
x0:=84 --下拉框起点x坐标
y0:=60 --下拉框起点y坐标
row:=35 --下拉框间距
--字体
Font_ID:=wcDisplayControl(x0, y0, 150, 140, "FontCombo", "Font_Var")
--字号
FontSize_ID:=wcDisplayControl(x0, y0+row, 150, 140, "ComboBox", "FontSize_Var")
wcSetPropertyValue(FontSize_ID, "items",
"5\r6\r7\r8\r8\r10\r11\r12\r13\r14\r16\r18\r20\r22\r24\r26\r28\r36\r48\r72")
--字体颜色
FontColor_ID:=wcDisplayControl(x0, y0+row*2, 150, 140,"ColorCombo","FontCorlor_Var")
wcSetPropertyValue(FontColor_ID, "VariableName", "ComboColorPicked")
wcSetPropertyValue(FontColor_ID, "VariableAware", 1)
--背景颜色
Bk_Color_ID:=wcDisplayControl(x0, y0+row*3, 150, 140, "ComboBox", "Bk_Color_Var")
wcSetPropertyValue(Bk_Color_ID, "items", "Aqua\rBlack\rBlue\rButtonFace\rFuchsia\rGray\rGreen\rLime\rMaroon\rNavy\rOlive\
rPurple\rRed\rSilver\rTeal\rWhite\rWindow\rWindowText\rYellow")
--字形
FontStyle_ID:=wcDisplayControl(x0, y0+row*4, 150, 140, "ComboBox", "FontStyle_Var")
wcSetPropertyValue(FontStyle_ID, "items", "常规\r倾斜\r加粗\r加粗倾斜")
--对齐方式
FontAlign_ID:=wcDisplayControl(x0, y0+row*5, 150, 140, "ComboBox", "Alignment_Var")
wcSetPropertyValue(FontAlign_ID, "items", "左对齐\r右对齐\r居中对齐")
3. 向流程线上拖入一个显示图标,命名为“Text”,打开图标,在适当的位置显示“字体”、“字号”等内容,提示用户操作。
4. 下面我们再向流程线上拖入一个交互图标,并拖入若干个计算图标作为响应分支,响应类型设置为“条件响应(Conditional)”,并全部设置为永久响应类型,这些图标的作用是,当用户设置了字体、字号后,能够即时预览到字体效果。完成后程序流程如图。
下面重点说明一下“Font_Var”图标的设计,其余依次类推。
变量Font_Var的初始值为0,当用户选择某一字体后,激活“Font_Var”图标,执行其中内容。
“Font_Var”计算图标的代码如下:
Font_Var:=wcGetPropertyValue(Font_ID,"Text") --获取所选字体名称
wcSetPropertyValue(Memo_ID, "FontName", Font_Var) --在段落文本中显示字体名称
wcSetPropertyValue(Memo_ID,"Text", Font_Var) --设置段落文本的字体
5. 制作完成后,程序运行界面如图。
说明:
1.本例中几个下拉列表框位置的确定,采用相对定位的方法,即用变量确定好第一个列表框的位置,再用这个列表框的位置去确定其它列表框的位置,这样做的好处是在需要同时移动所有列表框的位置时,只要改变初始变量就可以了,而不需要一一更改所有列表框的位置。
2.本例中字体预览框用的是“Memo”控制组件,“字体”下拉框用的是“FontCombo”控制组件,“字体颜色” 用的是“ColorCombo”控制组件,“字号”、“背景颜色”、“字形”和“对齐方式”用的都是“ComboBox” 控制组件。
3.“字形(FontStyle)”组件的属性值可以为“Regular”、“Italic”、“Bold”和“Bold Italic”,而我们使用“ComboBox” 组件建立字形下拉列表框时,用的是“常规”、“倾斜”、“加粗”和“倾斜加粗”等中文字符,所以当用户做出选择后,还要将保存字形的变量的内容做相应的变换,所以“FontSty_Var”计算图标内容为:
FontStyle_Var:=wcGetPropertyValue(FontStyle_ID,"Text")
if FontStyle_Var="常规" then FontStyle_Var:="Regular"
if FontStyle_Var="倾斜" then FontStyle_Var:="Italic"
if FontStyle_Var="加粗" then FontStyle_Var:="Bold"
if FontStyle_Var="加粗倾斜" then FontStyle_Var:="Bold Italic"
wcSetPropertyValue(Memo_ID, "FontStyle",FontStyle_Var)
4.关于“对齐方式”的设置和“字形”相似。
总结:
本程序主要是通过外部扩展函数来实现的,程序代码很多,在实例制作时,请注意这些函数的使用方法。
| 青春话题 | 更多 |
| 相关新闻信息 |
|
|
|
|
合 作 |
考试吧 环球职教 三美世纪 广发银行 中信银行 河南商报 清华同方 知识在线 中国留学网 中国俊才网 中原图书大厦 中国招聘联盟 小主人成功网 |
|
友 情 |
中青在线 赛迪网校 朗曼 1+1 伤雨天堂 齐鲁教育网 企业大学网 河北教育网 网站推广助手 新浪教育频道 搜狐教育频道 中华会计网校 |
|
|
||
河南教育网版权所有 河南创新教育产业发展有限公司
制作维护 |
||