Authorware 6.0技巧与实例之八[组图]

  • 来源: CND8学院 作者: xiaoyang   2009-07-10/10:36
  • 检测和调整显示器分辨率

    用Authorware制作课件,在制作之前就要确定好作品的分辨率,现在常用的分辨率为800×600。可是这并不能保证设计的效果能够在用户的计算机上完美重现。如果用户的显示器分辨率为640×480,那么作品将有一部分在屏幕外,根本显示不出来;如果用户显示器的分辨率为1024×768,那么作品仅能占据屏幕的一部分,也不能让用户看到最佳效果。所以最好的方法是,在程序运行时,检测用户的显示器分辨率,如果和你设计的不一致,那么提示用户改变它。

    本节要点:外部扩展函数(UCD)变量(Variables)和函数(Functions)的使用知识对象(Knowledge Object)

    本例简介:本例流程如下:首先检测用户的显示器分辨率,并保存在变量中。然后判断用户的显示器分辨率和所要求的分辨率是否相同。如果相同,不作改变,直接运行程序;如果不同,提示用户改为要求的分辩率,用户确定后,对显示器分辨率进行调整。如果在运行程序时,用户的显示器分辨率被更改过,退出程序前,将用户显示器的分辨率恢复到原先的值。

    本例通过Authorware的一个外部扩展函数alTools.u32来实现,这个扩展函数可以从作者的主页 http://home3.pacific.net.sg/~apudeepa 上得到最新版本。本例带有源程序中也有这个扩展函数的最新版本。

    本例的结构设计可以很方便地添入其它内容,可以做为模板供以后使用。

    完成后流程图

    制作步骤:

    1、新建一个程序,命名为“aw6_11”,你也可以在程序完成后保存时命名。

    2、装载外部扩展函数alTool.u32。如果Functions窗口没有显示出来,选择“Window”>>“Functions”命令,使它显示。在“Category”下拉菜单中选择“test.a5p”,如果你的程序还没有命名保存,那么这时应该选择“[Untitled]”。

    3、单击“Load...”按钮,出现“Load function”对话框,选择“alTools.u32”后,单击“打开”按钮确定。

    #p#副标题#e# 此时出现alTools.u32中所有的函数列表,本例只需选择“alChangeRes”,然后点按“Load”按钮确定。

    这时就可以在该程序中使用“alChangeRes”函数了,这个函数的作用就是改变屏幕的分辨率。用法为: alChangeRes(Width,Height,bitpp),如alChangeRes(800,600,16) 就是将显示器设为800×600像素,16位真彩色,这也是现在最流行的设置。

    4、向流程线上由上到下,依次拖一个计算图标、一个框架图标和一个计算图标。分别命名为“test Screen”、“frame”和“end”。打开“frame”框架图标,将其中所有内容删除,因为本例中不需要其中的导航按钮。

    5、向“frame”框架图标右侧拖入两个群组图标,分别命名为“next”和“notice”。

    6、“test Screen”计算图标中代码如下:

    --这里是本程序运行所需的屏幕分辨率

    --本例设为800×600,16位真彩色,你可以改为你想要的值
    N_width:=800
    N_height:=600
    N_depth:=16

    --先检测当前屏幕分辨率,并保存起来,以便程序退出时恢复
    width:=ScreenWidth
    height:=ScreenHeight
    depth:=ScreenDepth

    #p#副标题#e#

    --如果当前屏幕设置和本程序要求不同,
    if ((ScreenDepth <N_DEPTH)|(SCREENWIDTH<>800)) then
    GoTo(IconID@"notice")
    else
    GoTo(IconID@"next")
    end if

    7、群组(Group)图标“next”中为主程序内容,你可以将你的程序放在这个图标内。计算(Caculation)图标“QUIT”是一个按钮,其中代码为 “GoTo(IconID@"end")”,意思就是在点按此按钮后,程序转到“end”图标执行。

    8、群组(Group)图标“notice”中内容为调整显示器的分辨率。知识对象(Knowledge Object)“pop-up alert”中的内容是在显示器分辨率不符合要求时,弹出一个窗口,提示用户将进行修改,用户可以确定修改,也可以不确定。计算(Caculation)图标“change screen”中内容是对显示器的分辨率进行调整,其中代码如下:

    --将屏幕分辨率调为所要求的值
    if wzMBReturnedValue=6 then
    alChangeRes(N_width,N_height,N_depth)
    changed:=1 --标记屏幕分辨率已被更改
    else
    GoTo(IconID@"next")
    end if

    GoTo(IconID@"next") --跳到主程序

    #p#副标题#e#

    9、群组(Group)图标“notice”中“pop-up alert”是Message Box知识对象(Knowledge Object),你可以按照提示进行各项设置。其中“Caption/Message”为设置弹出窗口的标题和消息内容,本例设置如下。


    10、计算(Caculation)图标“end”是在程序退出前,判断用户的显示器分辨率在程序运行时,是否被修改过,如果被修改过,那么恢复原来的分辨率设置;反之直接退出。其中代码如下:

    --如果屏幕分辨率被更改,程序退出时,恢复原设置
    if changed=1 then alChangeRes(width,height,depth)

    Quit() --退出

    这样你的程序在运行时,如果需要的话,就可以将用户显示器分辨率设置为合适值,也就能够使你的作品在所有用户的机器上完美重现了!

    技巧提示:当程序中有大量的函数和变量时,关于变量的说明和程序中的注释语句是必要的,因为这样能使别人可以很容易读取自己的程序,在很长时间后也能根据注释迅速回忆起原来的内容。


    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

    A {{question.A}}
    B {{question.B}}
    C {{question.C}}
    D {{question.D}}
    提交

    驱动号 更多