AUTHORWARE的扩展与开发----之鼠标跟随

  • 来源: 互联网 作者: 若水   2008-03-21/16:29
  • [前言]  AUTHORWARE是专业的多媒体制作利器,但是,它也有许多先天的不足,其中之一就是原创性太少,大多数的素材需要借助其它软件的前期处理。有点厌倦了频繁地调用,就想折腾点名堂出来。想到它山之石可以攻玉的古训,所以,参考其它编程语言,开始了一系列移花接木(包括屏保、进度条、鼠标跟随等)。

     

    [思路来源]  FLASH中有一种效果--鼠标跟随。.当鼠标移动时,在其后面会留下一串的轨迹,或者是晶莹的宝石,或者是璀璨的星星,等等。比较简单的一种要算是文字跟随了。下面将在AUTHORWARE中开发这种效果。LET'S GO!

     

    [实现步骤]

        使用"coursorx"和"coursory"变量,动态决定了跟随文字与鼠标间相对固定的位置,也就实现了鼠标跟随。可真的这么简单吗?

        本教程按照笔者的制作步骤来描述,.所以开始步骤会与最终程序有所不同,不过,有关步骤中有调试修改的详细解说。

    <一>  基本功能得实现

      1、 加入计算图标int,程序如下:

    --------取得鼠标位置并赋予变量

    xPos:=CursorX

    yPos:=CursorY

    #p#分页标题#e#  2、 加入交互图标控制,下挂一个组图标,设为永久条件交互;

        (1)条件交互为:

    xPos<>CursorX | yPos<>CursorY

        从该表达式可知,这个交互在移动鼠标时相应。.那么很显然,这个组图标中就应当放置所要跟随得文字了。

        (2)打开这个组图标,在其中加入一个显示图标,输入文字G

        (3)加入一个等待图标,设置等待时间为变量wait time,其初始值为0.05,取消其它设置;

        (4)重复步骤2、3,加入所有文字和等待。本例为工作室名称G&LDMT

        现在运行程序,已经可以初步看到鼠标效果了。但是,一旦鼠标停止,跟随得文字就七零八落地散落在轨迹的不同点上(原因是交互失效),只用再次轻移鼠标才能使其回到正确位置。所以,拟增加一个让鼠标停止时也能调整位置的永久交互。

      3、在交互图标控制下方右侧再增加一个永久条件交互,图标为组图标;

        开始,很自然地想到用TRUE#p#分页标题#e#的恒真交互,但是,永久条件交互的默认模式是ON FALSE TO TRUE,因为始终都是TRUE,所以实际上本交互根本就无法发挥作用。如果要改变为WHEN TRUE方式,又只能取消永久,致使流程中断,真叫人为难

        解决的办法就是增加一个变量,使其能够不断在FALSETREU或者01间变动,从而可以响应ON FALSE TO TRUE

        (1)修改新加入的条件交互为:

    MOVE=0

        MOVE=0时代表此时鼠标不动。

        (2)打开这个#p#分页标题#e#MOVE=0组图标,在其中加入一个计算图标get pos again

    --------重新取得鼠标位置

    xPos := CursorX

    yPos := CursorY

        (3)copy所有用于跟随的文字和等待图标,paste到接下来的流程线上,并成组为跟随文字

        (4)在条件交xPos<>CursorX | yPos<>CursorY组图标中,在开头加入计算图标move:=1,程序也是:

    move:=1

        (4)在条件交互xPos<>CursorX | yPos<>CursorY组图标中,在结尾加入计算图标move:=0,程序也是:

    move:=0

        这样,进入条件交互#p#分页标题#e#xPos<>CursorX | yPos<>CursorY后,默move=0就会变为1,出来时又变回为0,实现了ON FALSE TO TRUE的变化。同时因为出来时为0,使鼠标从运动到停止时立刻开始响应move=0条件交互,使跟随周而复始,生生不息。

    <二> 完善程序

        出于系统性和调试方面的考虑,都有必要作个简单的程序框架。

        (1)加入一个框架结构,作为主程序;

        (2)删除入口处所有图标,设置一个退出按钮和三个导航按钮,导航方向为框架结构下的三个组图标。实际应用中,可以在这些组图标中添加主程序。第一个空组图标只是为了防止程序立刻进入第一个分支,这种办法经常用到。

        (3)将上面两个条件交互移动到入口处,.使程序结构更加合理;

        (4)调试中发现点击导航按钮进入响应分支后,变量move有时会停止于0或者1,可能原因是点击瞬间需要同时响应两个流向:进入主程序分支和响应条件交互,冲突从而导致响应条件交互的失效。所以,在每个分支的最后又加入一个计算图标修正MOVE值,程序为:

    ----------放置于流程最下面

    ----------没有这句多次点击按钮后跟随得文字会消失move停滞为0/1

    ----------本句是改变停滞的 move,重新激活鼠标跟随得条件交互

    MOVE:=~MOVE

        #p#分页标题#e#(3)其它细节请参考源程序

     

     

    [执行效果]

        在AUTHORWARE中执行程序后,文字就会跟随戍边到处飘舞,留下美丽的痕迹。

        点击主程序的任何交互也不会担心穿帮了。

     


    评论 {{userinfo.comments}}

    {{money}}

    {{question.question}}

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

    驱动号 更多