主题:  【Authorware√常见问题】

魔岩

职务:版主
等级:6
金币:34.0
发贴:4453
注册:2004/1/13 10:53:31
#12002/5/16 23:28:53
本帖说明:
鉴于有些网友提出的问题的重复性,为了方便大家更快的解决问题,避免版面问题的重复性,现开设这个合集,由斑竹定期整理版面问题整理进本合集里,也欢迎大家把FAQ添加进来,但是不要重复!

添加FAQ格式如下:

[问题]
插入GIF图片,打包后不能显示,怎办?
我在AW中插入了GIF图片,打包之后不能显示,弹出错误信息,说“可能是没有找到XTRA,或者GIF文件找不到”。但我已经把XTRA文件夹复制过去了,GIF文件也在。

[解答]
含有GIF图片的打包文件需要Xtras文件:AnimGIF.X32(如果使用ANIGIF文件的话,还应该带上Awiml32.dll)才能正常运行。

编辑历史:[这消息被Rock编辑过(编辑时间2002-05-16 23:33:09)]
[这消息被Rock编辑过(编辑时间2002-05-16 23:35:49)]
[这消息被Rock编辑过(编辑时间2002-05-16 23:36:59)]
[这消息被Rock编辑过(编辑时间2002-05-16 23:38:09)]
[这消息被Rock编辑过(编辑时间2002-05-17 08:47:41)]
[这消息被Rock编辑过(编辑时间2002-05-17 10:31:08)]
[这消息被Rock编辑过(编辑时间2002-05-18 15:44:30)]
[这消息被Rock编辑过(编辑时间2003-07-25 11:17:00)]
[这消息被Rock编辑过(编辑时间2003-07-25 11:23:06)]


魔岩

职务:版主
等级:6
金币:34.0
发贴:4453
注册:2004/1/13 10:53:31
#22002/5/17 8:46:07
[问题]
Authorware中如何输入数学符号?

[解答]
用公式编辑器(在Word里)等东西编辑好,拷贝粘贴到Authorware中,此时公式在AW中是WMF矢量图,可以选择编辑-OLE对象-转换-转换为位图即可,不转换打包后自动转换。

编辑历史:[这消息被Rock编辑过(编辑时间2002-05-17 08:46:31)]
[这消息被Rock编辑过(编辑时间2002-05-17 08:48:02)]


魔岩

职务:版主
等级:6
金币:34.0
发贴:4453
注册:2004/1/13 10:53:31
#32002/5/17 8:49:21
[问题]
如何在AW5.2中插入使用*.wma文件?

[解答](Rock Studio 魔岩工作室)
1.Insert——>Control——>ActiveX——>Window Media Player
2.Rename ActiveX Icon as "wma"
3.Add a calculate Icon to the Flow
Write the Code into calculate Icon as below:
CallSprite(@"wma", #open,FileLocation^"1.wma") ---play 1.wma file
4.Save and try

编辑历史:[这消息被Rock编辑过(编辑时间2002-05-21 14:09:10)]


魔岩

职务:版主
等级:6
金币:34.0
发贴:4453
注册:2004/1/13 10:53:31
#42002/5/17 8:51:04
[问题]
如何侦测到机器的分辨率?

[解答](Rock Studio 魔岩工作室)
系统变量ScreenWidth和ScreenHeight就是用户屏幕的大小,可以通过altoos.u32等外部扩展函数来动态改变用户屏幕分辨率。

编辑历史:[这消息被Rock编辑过(编辑时间2002-05-21 14:09:56)]


魔岩

职务:版主
等级:6
金币:34.0
发贴:4453
注册:2004/1/13 10:53:31
#52002/5/17 8:54:00
[问题]
AW汉化版本的问题
Aw汉化之后,调用函数时老是提示找不到函数,弹出“函数在哪里?”的对话框。请问这时我应该怎么办?

[解答]
使用英文原版,不要使用汉化版。



魔岩

职务:版主
等级:6
金币:34.0
发贴:4453
注册:2004/1/13 10:53:31
#62002/5/17 15:06:22
[问题]
如何改变暂停按钮的样式?

[解答]
在流程图上加入一个"wait"图标,单击"wait"图标选中,执行菜单命令modify--->file--->properties..后,会弹出一个属性对话框.在wait Button项后面有一个".."的按钮,单击后弹出"buttons"对话框,单击面板中的"Add.."按钮,出现按钮的四种状态,选择'UP'状态,在Graphic项的后面单击"import"按钮,选择你预先准备好的自定义按钮图片后,单击"import"按钮就可以了.用同样的方法导入其他三个状态的按钮,完成后一路"OK"就可以了。
注意:"WAIT"按钮的样式被改变后,则此程序中的所有引用"WAIT"按钮的样式都会变成自定义按钮的形式!



魔岩

职务:版主
等级:6
金币:34.0
发贴:4453
注册:2004/1/13 10:53:31
#72002/5/17 15:07:36
[问题]
使用authorware软件时,怎样从一个AW程序跳到另外一个AW程序,当第二个关闭后,仍能使前一个继续运行?

[解答]
在程序中加入一个计算图标,写入JumpOutReturn(FileLocation^"help.exe"), 其中help.exe是将要调入的程序名称,FileLocation表示用相对路径调入,也可以使用绝对路径的方式。



魔岩

职务:版主
等级:6
金币:34.0
发贴:4453
注册:2004/1/13 10:53:31
#82002/5/17 15:08:30
[问题]
怎样改变打包后可执行文件的图标?

[解答]
使用EXE资源修改器例如exescope等修改即可。



魔岩

职务:版主
等级:6
金币:34.0
发贴:4453
注册:2004/1/13 10:53:31
#92002/5/17 15:09:32
[问题]
如何调用windows本身的声音控制面板?

[解答] (魔岩工作室 Rock Studio)
因为98和2K下音量控制程序sndvol32.exe的存放位置有点区别,因此需要在调用的时候判断用户系统来确定正确路径!!

正确的代码:

winpath:=getosdirectory()

if Find("WINNT",UpperCase(winpath))<>0 then
JumpOutReturn(winpath^"\\System32\\sndvol32.exe")
else
JumpOutReturn(winpath^"\\sndvol32.exe")
end if

编辑历史:[这消息被Rock编辑过(编辑时间2002-08-29 16:13:37)]


魔岩

职务:版主
等级:6
金币:34.0
发贴:4453
注册:2004/1/13 10:53:31
#102002/5/17 15:10:35
[问题]
在AW中如何实现图片跟随鼠标的效果?

[解答]
用一个“显示”图标导入要移动的物体。 建一个条件交互,条件设为TRUE,分别设置AutoMatic为When True,Branch为Continue,其余不变。在条件交互下只要一个移动图标就行。其设置如下: 在Motion标签页中设置Type为Direct to Point,设置Timing为Time(sec),把其下的数值改为0,设置Concurrency为Concurrent;在Layout标签页中分别输入Destination所对应X值为CursorX,Y值为CursorY。



魔岩

职务:版主
等级:6
金币:34.0
发贴:4453
注册:2004/1/13 10:53:31
#112002/5/17 15:17:13
[问题]
如何使制作的光盘自动播放?

[解答](Rock Studio 魔岩工作室)
在光盘在根目录下加入autorun.inf 文件。其格式为:
[autorun]
icon=图标文件名
open=应用程序文件名

autorun的具体资料参考下文(来自网络):
最简单的AUTORUN.INF文件,只需包含三行文字:
[autorun]
open = filename.exe
icon = filename.ico
FILENAME.EXE可以命名当光盘插入时执行的任何文件。除非指定路径,Windows 95将在插入的光盘的根目录下查找FILENAME.EXE文件。你可以指定一个相关路径, 以便Windows 95在子目录中查找FILENAME.EXE。 表达式“icon = filename.ico” 指定一个图标来表示在Windows 95用户界面上的可自动播放的光盘。这一特性为用户提供了方便,使得用户不必取出光盘就可以识别该可自动播放光盘的内容。当驱动器中没有可自动播放的光盘,系统将在该位置使用缺省的图标表示。你还可以在icon= 的命令行中指定一个.BMP,.EXE或.DLL文件。如果一个文件中包含了多个图标,你可以指定希望使用的图标编号。例如,icon = filename.exe,1将显示FILENAME.EXE文件中的第二个图标。(第一个图标的编号是0。)
注意:AUTORUN.INF中的icon=命令行的执行通常与AUTORUN.INF所在的目录相关。如果你希望为图标指定一个绝对的路径,使用语句“defaulticon=path”。当用户在Windows 95下指向一个图标并单击鼠标右键,Windows 95将为该图标显示一个“快捷菜单”。如果在CD-ROM中有AUTORUN.INF文件, Windows 95将自动将“自动播放”加入到快捷菜单,并且将其设置为缺省操作,即双击该图标将执行open=命令行中指定的文件。你可以通过AUTORUN.INF文件,为你的光盘加入其它的快捷菜单项。加入快捷项,只需应用下列语句:
shell\verb\command=filename.exe
shell\verb=Menu Item Name
在上述的语句中,“Menu Item Name”是用户将看到的快捷菜单项。它可以包含空格和大小写混合的字符串。要为菜单项设置键盘加速键,可以在任何字母前插入“&”符号。应用动词(verb)关联命令(command)和可执行文件,使用不含空格的简短名。除非你从AUTORUN.INF中删除“Menu Item Name”,否则用户将看不到该动词。
例如,要为你的产品的快捷菜单中加入命令行“Read Me”,应在AUTORUN.INF中包含如下命令行:
shell\readit\command=notepad foo\readme.txt
shell\readit=Read &Me
通常,“自动播放”是所有可自动播放的光盘中定义的缺省菜单项。如果你希望定义不同的动作作为缺省值,将下列语句加入你的AUTORUN.INF文件中:
shell=verb
当用户双击该光盘图标时,将执行与“verb”相关联的命令。

编辑历史:[这消息被Rock编辑过(编辑时间2002-05-21 14:11:42)]


魔岩

职务:版主
等级:6
金币:34.0
发贴:4453
注册:2004/1/13 10:53:31
#122002/5/17 15:19:41
[问题]
如何去掉文件的File菜单项?

[解答]
先设置一个与File重名的下拉菜单交互(把交互名改成"File"),然后用擦除图标将其擦去即可。



魔岩

职务:版主
等级:6
金币:34.0
发贴:4453
注册:2004/1/13 10:53:31
#132002/5/17 15:20:55
[问题]
如何使用ODBC连接数据库?

[解答]
1、ODBCOpen(WindowHandle, Var,数据源,用户名,密码) ,WindowHandle只要照写就行了,它是Authorware的系统变量,是演示窗口的句柄。举个例子: odbchd:=ODBCOpen(WindowHandle, Var, "dd", )假设这里dd是我在控制面板中设的ODBC数据源,是PARADOX数据库,所以不用用户名和密码;

2、然后可以用SQL语句来查询结果了,如果要从我的PARADOX目录中的KEY.DB表中查出所有记录的KEYNO字段值,这样写: Data:=ODBCExecute(odbchd, "select KEYNO from key.db") ODBCClose(odbchd) ,从中取出KEYNO的值放在变量DATA中。

3、关闭数据库连接,ODBCCLOSE(odbchd) 要注意结果是一个字符串,可以用字符串处理函数处理,为了防止不必要的麻烦,请构造好合适的SQL语句,以免产生巨大的结果字串,详见各种SQL语言资料。



魔岩

职务:版主
等级:6
金币:34.0
发贴:4453
注册:2004/1/13 10:53:31
#142002/5/17 15:22:42
[问题]
如何调用默认浏览器打开Html文件?

[解答]
打开本地文件readme.htm:
JumpOutReturn("",FileLocation^"readme.htm")
打开WEB上的网页:
JumpOutReturn("","http://www.5dmedia.com/index.htm")



魔岩

职务:版主
等级:6
金币:34.0
发贴:4453
注册:2004/1/13 10:53:31
#152002/5/18 13:57:12
[问题]
如何实现点击邮件地址自动打开默认的邮件发送程序?

[解答](Rock Studio 魔岩工作室)
ShellExecuteA是shell32.dll(该DLL在系统目录里)里封装的一个函数,可以实现你的功能。
以下的代码可以用自动打开默认的邮件发送程序:
ShellExecuteA(windowhandle, "open","mailto:hellrock@163.net","","",5)
以下的代码可以用自动打开默认的邮件发送程序(有主题):
ShellExecuteA(windowhandle, "open","mailto:hellrock@163.net?Subject=This is the subject","","",5)
以下的代码可以用自动打开默认的邮件发送程序(有主题,抄送):
ShellExecuteA(windowhandle, "open","mailto:hellrock@163.net?Subject=This is the subject&cc=hello@5dmedia.com","","",5)
以下的代码可以用自动打开默认的邮件发送程序(有主题,抄送,密件抄送):
ShellExecuteA(windowhandle, "open","mailto:hellrock@163.net?Subject=This is the subject&cc=hello@5dmedia.com&bcc=rock@rockstudio.com","","",5)
以下的代码可以用自动打开默认的邮件发送程序(有主题,抄送,密件抄送,邮件内容):
ShellExecuteA(windowhandle, "open","mailto:hellrock@163.net?Subject=This is the subject&cc=hello@5dmeida.com&bcc=rock@rockstudio.com&body=This is the body of the mail. This is another sentence.","","",5)
以下的代码可以发送多人:
ShellExecuteA(windowhandle, "open","mailto:hellrock@163net;hellyun@love.com?Subject=This is the subject&body=This is the body of the mail. This is another sentence.","","",5)
以下代码可以抄送多人:
ShellExecuteA(windowhandle, "open","mailto:hellrock@163.net?Subject=This is the subject&cc=hellrock@5dmedia.com;friend@5dmedia.com&body=This is the body of the mail. This is another sentence.","","",5)
以下为ShellExecuteA的API声明相关内容:
Function Name :ShellExecuteA
Parameters:Long,String,String,String,String,Long
Return value :Long

编辑历史:[这消息被Rock编辑过(编辑时间2002-05-20 11:04:12)]
[这消息被Rock编辑过(编辑时间2002-05-21 14:12:36)]