我爱学习网-上传
当前位置: 主页 > 影视动画 > Authorware >

Authorware使用技巧之开发秘诀

时间:2013-05-03 18:38来源:我爱学习网 作者:布丁点儿 点击:

  1.在脱离开发环境时,对于AVI应该注意以下问题:

  (1) 动画文件播放驱动程序:

   如果使用A3.5,则要将a3vfw.xmo文件与播放器文件runa3w16.exe放置在同一目录下;如果播放器使用32位的runa3w32.exe,则与之相应使用a3vfw32.xmo。如果使用A3.0,则要将a3vfw.xmo文件与runa3w.exe放置在同一目录下。如果使用Star 2.0,则要将apdgv.vdr文件与asc.exe放置在同一目录下。

  (2) AVI路径问题:

   如果将全部的AVI文件与播放器放置在同一目录下,则不存在路径问题;如果将AVI文件放置在播放器的下一层目录时,则要注意路径问题:例如,目录结构如下:C:ProjectPlayer.exe 是打包后的运行文件;AVI文件存放在C:ProjectAvifiles 子目录之下;则在Authorware的程序开始部分中应该加入下列语句:SearchPath:= FileLocation^"avifiles\"。

  2.在通过ODBC与FoxPro/dBase数据库互联时,SQL删除记录的方法:

   当使用SQL 进行记录删除时,如果在ODBC Driver 设置中将[Show Deleted Rows]选项设置成选中状态时,则通过SELECT语句仍能将删除的记录(在FoxPro/dBase中以*号标记)挑选出来。因此,需要将[Show DeletedRows]选项关闭,则已经删除掉的记录将不会再出现。

  3.使用JumpFileReturn返回后,交互区中的自定义光标失效的解决方法:

   这个问题在A3.0/3.0.1会出现,在A3.5中,这个问题得到解决。如果您使用A3.0/3.0.1,则可以参考以下解决方法:

  (1) 如果您所设定的交互区不是永久交互的话,则可使用此方法:假设交互图标名称为:Int 则在调用JumpFileReturn的计算图标后面(即程序的返回点),再添加一个计算图标,并加入语句:

  Goto(IconID@"Int")。

  (2) 如果您使用永久交互区,解决办法会相对比较复杂:因为返回后的转移方向不能确定,无法使用Goto语句,所以必须利用函数方法判断鼠标位置,并在相应的热区位置上更换鼠标形状。例如:test(CursorX > 100& CursorX < 200 & CursorY > 100 & CursorY<200, SetCursor(3)),同时,在其它区域上将鼠标恢复为正常状态。

  4.在利用ODBC取数据时,如果域中值为空,数据错误的解决方法:

   由于返回的字符串中不同的记录间由字符""分隔,同一记录中的域值间是用" "分隔的,所以在直接显示指定记录,或取得一个记录中指定的域值时会发生错误。此时只要使用函数Replace,将返回串中的" "字符替换为别的特殊字符(用于定义特殊的分行符),如"*"、"\",即可方便地用函数GetLine得到指定位置的数据。(先通过""得到一个完整的记录,然后通过自定义的分行符取得各个域值。)

  5.IconID@后面的名称参数支持变量的方法:

   使用Eval函数可以实现这一功能,例如:将图标名称存放在自定义变量MyIconName中,如:MyIconName:= "NewPosition"使用Eval("Goto(IconID@"^MyIconName^")"),便可以实现跳转到图标NewPosition的功能。

  6.在256色状态下时,处理FLI/FLC动画文件调色板的方法:

   (1).原因:当处于256 色显示方式时,Authorware在装入FLI/FLC动画文件时,并不直接装入其中相应的调色板信息。因此,播放窗口中的调色板与FLI/FLC所需的调色板不匹配,从而出现颜色失真现象。

   (2) 解决方法:需要从FLI/FLC 文件中将其中的调色板信息提取出来,并存为Authorware所能识别的RIFF PAL格式的调色板文件。在Authorware中准备播放FLI/FLC动画之前,先通过Palette.ucd 中的函数将当前调色板设置成与动画相匹配的调色板。这时,动画播放时,颜色将恢复正常。

   (3) 如何从FLI/FLC 文件中取出调色板信息:

   方法一:使用迈达公司提供的调色板提取工具Win Palor 1.0,可从FLI/FLC文件中抽取出Mircosoft RIFF格式的PAL调色板。

   方法二:使用Microsoft VideoEdit 与BitEdit完成这个工作。通过VideoEdit读入FLI/FLC文件,并将动画的第一帧输出成DIB位图格式;再利用BitEdit读入位图,创建相应的调色板文件。

   方法三:利用其它可以编辑FLI/FLC 的工具,如Adobe Premiere等,也可完成调色板提取工作。

  注意:

   所生成的调色板文件必须存为Mircosoft RIFF 格式的调色板,否则Palette.ucd将不能正常读取其中颜色表。如果手头没有这种工具,也可以将动画第一帧图片存为BMP/DIB格式,Palette.ucd也能读取其中的调色板,只不过BMP文件要比PAL文件大一些,多占用一部分空间。

  7.利用Authorware制作自动循环翻页功能:

   在框架图标里的交互图标及每个按钮上加一个计算图标,在计算窗口中输入:t:= SystemSecond,把系统秒赋给一个变量t。在按钮的后面加一个条件判断的交互,并在条件判断中输入:SystemSecond-t>2,在交互的下面挂接一个Next导航图标,若条件成立就向后翻一页。

  8.在Authorware中制作可以随时响应系统事件的结构:

   这一功能通过条件判断(Conditional)方式的永久交互来完成。实现办法是:在程序的开始部分,加入一个交互图标,并建立条件判断(Conditional)方式的交互。将Conditional的永久选项Perpetual选中,这时Auto-match选项将自动设置为On False To True。这一选项表明,如果产生条件由假变真的情况,程序无论正在运行何处,都将自动运行永久交互下面组图标(Map)中的内容。为了使系统能够每隔一个时间段,都出现由假变真的事件,可以使用函数Mod(Sec,2)。这样,每隔2秒种程序便可得到系统发来的事件,你可以在交互下面的组图标中加入中断处理程序,完成对系统的随时监控。

  9.在Authorware中所有带有UCD的计算图标不能进行复制的原因:

   这一现象发生在A3.5之中,在Authorware 3.5.1中这个问题得到解决。如果您使用的是A3.5,则可利用下面的方法实现复制:先将调用UCD函数的部分用"--"注解起来,然后再进行复制。在复制完毕后,再将注释解除即可。当要复制的数目比较多时,解除时可以利用Authorware提供的字符串替换功能完成批处理。

  10.播放MIDI时的中断问题:

   这个现象的出现,是因为Authorware对MIDI的处理也是按照内部物体的管理办法去控制的,也就是说,Authorware的自动删除机制对MIDI也起作用。因此,在选择Erase All Icon Except后,MIDI也被认为是要删除的对象。解决办法是,将MIDI也排除在准备删除的图标之外。由于删除图标以交互方式指定删除对象,因此必须使带有MIDI的计算图标中含有绘图函数,以保证通过鼠标能选中它。例如,可以使用Line函数,当这种指定关系建立完成后,可以将绘图函数注解或删除掉,而MIDI仍将保持与删除图标的关系。这样,MIDI便不会被中断,直到使用MIDIStop函数。

  11.利用MCI语句控制MPEG文件的播放:

  在装入a3wmme.ucd时,选择 MCISendString 和 MCIGetReturnString 函数。

  (1) 打开设备命令:

  cmdstring := "open "^MovieFile^ " alias movie"

  MCISendString(cmdstring)

  cmdstring := "window movie handle "^WindowHandle

  MCISendString(cmdstring)

  cmdstring := "window movie state no action"

  MCISendString(cmdstring)

  cmdstring :="seek movie to end"

  MCISendString(cmdstring)

  cmdstring :="status movie position"

  MCISendString(cmdstring)

  end := MCIGetReturnString()

  cmdstring :="seek movie to start"

  MCISendString(cmdstring)

  cmdstring :="status movie position"

  MCISendString(cmdstring)

  start := MCIGetReturnString()

  (2) 播放设备命令:

  cmdstring := "put movie destination at 170 120 320 240"

  MCISendString(cmdstring)

  cmdstring := "play movie"

  MCISendString(cmdstring)

  (3)停止并关闭设备命令:

  cmdstring :="pause movie"

  MCISendString(cmdstring)

  cmdstring := "put movie destination at 0 0 0 0"

  MCISendString(cmdstring)

  cmdstring := "stop movie"

  MCISendString(cmdstring)

  cmdstring := "close movie"

  MCISendString(cmdstring)

  以上MCI 命令可以完成基本的播放任务,可以在需要的程序位置上加入。MovieFile变量中放置所要播放的Mpeg文件名即可。有关其它MCI 命令的具体使用,需要参阅MCI 命令手册。

  12.使用Preload函数应注意的问题:

   Preload函数主要完成对Authorware内部物体的预装入功能;在A3.0 中增加了对外部AVI 文件的预装入的支持,但应注意的是,Preload函数在预装入AVI时并不支持SearchPath中指定的路径,因此不能用于播放路径与制作路径不一致的程序之中,否则,将会出现找不到AVI文件的出错信息。

  13.制作既可响应单击也能响应双击的同一块交互区:

   首先,制作两个相互重叠的Hot Spot热区,一个设置为单击,一个设置为双击。因为Authorware在匹配时自左向右,因此需要将响应双击的部分放在响应单击的部分的左边,以保证这两种交互方式互不干扰地进行。

  14.利用MCI控制AVI文件的播放:

   首先要装入"MciExecute"、"MciSendString"等函数,这些函数存在于动态链接库文件"a3wmme.ucd"(32位为"a3wmme.u32",Star 2.0 中为"apwmme.ucd")。然后通过使用"MciExecute"或"MciSendString"向Windows发送MCI指令串,如:

  MciExecute("open c:\...\test.avi type AVIVideo alias test")

  打开AVI文件test.avi,并指定窗口的别名。

  

  MciExecute("put test window at 160 120 320 240")

  将窗口显示在指定位置,并确定窗口的大小。

  MciExecute("play test window wait")

  播放窗口中的文件,直到播放完毕。

  MciExecute("close test window")

  关闭窗口,同时关闭对应的文件。

  具体的MCI指令使用方法请查询微软关于此方面的技术

  资料,(可以使用MCI控制的设备应该包含在Windows的

  媒体播放器的设备列表中。)

  15.在Authorware开发中自己编写*.UCD,*.DLL,*.XMO:在Authorware的接口规范中,UCD、DLL是提供给用户的,而XMO目前只在a3.5以上的版本中提供,因此用户可以利用VC/BC开发UCD、DLL模块。为Authorware编写接口,建议使用Microsoft Visual C/C++ 系列。在Authorware安装光盘中的目录"contentsgoodiesucd"下含有具体说明和例子程序。

  16.使用动画图标播放MPEG文件时应注意的问题:

  我们建议使用RealMagic卡。注意事项是:

  (1) 在System.ini 文件中将MCI 部分的语句:

  ReelMagic=C:mmcifmp.drv

  修改为:

  MPEGVideo =C:mmcifmp.drv

  (2) 在Win.ini 文件中将MCI 部分的语句:

  mpg = ReelMagic

  修改为:

  mpg = MPEGVideo

  (一定要注意MPEGVideo的英文大小写)

  对于其它的回放卡,如果关键字不正确的话,也应进行相应的修改。

  17.Authorware能否实现全屏图文漫游,且热区能随之移动?

  可以。这一功能通过动画图标来完成。首先,需要将图片和文字装入相应的显示图标内,根据图文滚动的方向建立线性刻度动画(To CalculatedPoint On Line),整个线性刻度的物理长度(即在屏幕上的象素点)应正好是图片长度减去窗口的长度,这段长度也就是滚动的范围;整个线性刻度的逻辑长度(由移位变量控制)可以根据所需要的平滑程度决定。这个动画应该是一个永久性的动画,以保证可随时产生变化。然后,建立滚动控制交互区。一般情况下,交互通过两个按钮和一个可拖动的小方块完成。两个按钮可修改控制动画的移位变量,一个是递增,一个递减,完成来回移动,但注意不要使变量越界;可拖动的小方块利用可移动物体交互来完成:

  1.将小方块放置在一个单独的显示图标之内,并在Effect对话框中把Movable 选项设置为"Along PathOnly",路径需要和动画路径完全重叠。

  2.在可移动物体交互控制中,利用PathPosition变量捕捉到小方块的移动位置,并对移位变量做修改,因而可以控制动画的移动。最后,在制作滚动图文内部的热区时,使用变量控制热区的坐标位置。将热区的基本坐标值减去移位变量的值,就是滚动后的热区范围。

  18.在Internet环境下,如何控制Authorware页面在浏览器中的窗口形式?

  Authorware页面在与浏览器集成时有两种方式:一种是建立在浏览器之上的窗口,一种是建立在浏览器页面之中的窗口。这个功能通过在HTML语言的标志上设定完成。如果在浏览器之上建立窗口,使用window=onTop参数;如果在浏览器页面中建立窗口,使用window=inPlace参数。

  19.在Authorware中能否使用JPEG图片?

  如果您使用的是Macintosh版本的Authorware,Authorware将可直接读入JPEG格式的文件。如果您使用的是Windows版的Authorware,则需要安装QuickTime2.0或更高版本,然后通过OLE的办法装入JPEG文件。如果希望将JPEG文件独立在主程序之外时,需要使用专门处理JPEG图片的UCD完成JPEG读入过程。

  20.形状不规则的自定义按钮周围的白色为什么无法变为透明?

  这一现象出现在64K彩色方式时,解决办法是将系统显示方式设成256色或24位真彩色方式,当按钮装入Authorware内部之后,再切换到原来的显示方式,继续进行开发。

  21.如何判断当前播放环境中是否已装有声卡?

  这个功能通过判断系统中是否安装声卡的驱动程序来完成。

  (1) 读入system.ini文件:

  systemini := ReadExtFile ("C:\WINDOWS\SYSTEM.INI")

  (2) 加入一个自定义变量linenum控制循环的分支图标,再利用计算图标查找关键字"Wave=":

  linenum := linenum + 1

  line := GetLine (systemini, linenum)

  lineloc := Find ("Wave=", line)

  (3) 在分支图标中,选择Repeat Until True,并将条件设为:

  lineloc > 0 | linenum > LineCount (systemini)当发现"Wave="这一序列时,lineloc将返回出现的位置,否则返回0。

  (4) 在循环结束时,判断:

  Sound:=IF(linenum > LineCount(systemini), 0, 1)

  (5) 在声音图标的"Play Sound ... Times"选项中填入变量Sound,这样便可根据情况决定是否播放声音文件。

------分隔线----------------------------
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)

栏目列表
看看啦