郑州| 开封| 洛阳| 平顶山| 新乡| 焦作| 安阳| 鹤壁| 濮阳| 三门峡| 许昌| 漯河| 南阳| 商丘| 信阳| 驻马店| 周口| 济源
当前所在位置:-主站新闻系统-教师-课件制作
漂亮字体 由你作主
http://www.henanedu.com/       发布时间:2004-8-20 17:16:30       来源:新天创作室  
     我们在使用Authorware开发多媒体作品时,如果有大量的文本,那么设置什么颜色、使用什么字体真是一件很头疼的事!因为不知道用户喜欢什么样式呀,还有,不同的人也可能喜欢不同的字体,要是能让用户自己来设置文本的样式就好了,这当然也是可以的,下面就跟着我来做吧。

    问题分析:

  让用户自己设置文本的样式,有点像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.关于“对齐方式”的设置和“字形”相似。

    总结:
    本程序主要是通过外部扩展函数来实现的,程序代码很多,在实例制作时,请注意这些函数的使用方法。

作者:
责任编辑:mary
    本网注明:“来源:XXX”(非中原教育网)的作品,均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其具有的真实性负责。如因作品内容、版权和其它问题需要同本网联系的,请在30日内进行。
中原教育网精彩话题推荐
相关新闻信息

 
 

 考试吧 环球职教 三美世纪 广发银行 中信银行 河南商报 清华同方 知识在线 中国留学网 中国俊才网 中原图书大厦 中国招聘联盟 小主人成功网

 清华继续教育学院 新锐娱乐学习门户 中国高等教育学生信息网 中国医疗卫生人才网

 
 

 中青在线 赛迪网校 朗曼 1+1 伤雨天堂 齐鲁教育网 企业大学网 河北教育网 网站推广助手 新浪教育频道 搜狐教育频道 中华会计网校

 潇湘招考在线 大河大图文传播 湖南教育信息网 上海人才市场报 中国教育产业网 中国招生考试在线 更多…

河南教育网版权所有 河南创新教育产业发展有限公司 制作维护
地址:郑州市紫荆山路69号文成商务518室 邮编:450000
电话:0371-66286189  技术支持转0371-66286189 传真:0371-66267466
电子邮件:hnedu@henanedu.com info@henanedu.com
Copyright © 2002 - 2006 Henanedu.com, All Rights Reserved.