主题:  【Authorware√常见问题】

魔岩

职务:版主
等级:6
金币:34.0
发贴:4453
注册:2004/1/13 10:53:31
#162002/5/21 14:05:10
[问题]
如何修改打包文件的窗口标题?

[解答](Rock Studio 魔岩工作室)
用winapi.u32里面的SetWindowText函数设置窗口标题文字,例如:
SetWindowText(WindowHandle,"多媒体设计软件")
这样打包后的文件窗口标题就为你设置的文字了!

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


魔岩

职务:版主
等级:6
金币:34.0
发贴:4453
注册:2004/1/13 10:53:31
#172002/5/21 14:06:55
[问题]
如何使AW打包文件运行时不在任务栏中出现authorware一闪而过的字样?

[解答](Rock Studio 魔岩工作室)
找个EXE资源修改器,例如exescope,具体修改如下图:
(图中使用为汉化版本的exescope)

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


与人同乐

职务:管理员
等级:6
金币:18.0
发贴:3928
注册:2001/3/11 15:45:42
#182002/5/22 7:46:26
[问题]
加载API函数ShowWindow时,出现于AW内部函数showwindow同名而无法加载的情况,从而无法完成“使窗口最小化”等等任务。

[解答]
加载API函数ShowWindowAsync,该函数可以替代ShowWindow,例如使窗口最小化的代码为ShowWindowAsync(WindowHandle, 2)。



hiinhie

职务:普通成员
等级:1
金币:0.0
发贴:102
注册:2001/7/20 11:01:15
#192002/5/22 23:59:12
[问题]
在计算图标的代码窗口里输入汉字时,输到几个字后,再输显示的是乱码。只有关闭后再进入修改才恢复正常。请问,这是为什么?还有,自定义变量的初始值定义后可以改变吗?可以的话,怎么改变,我找不到原先的窗口。

[解答]
输入汉字变为乱码是因为代码窗口宽度不够造成的。自定义变量的初始值可以在变量窗口中直接进行修改。

编辑历史:[这消息被y编辑过(编辑时间2002-05-23 07:31:53)]
[这消息被Rock编辑过(编辑时间2002-05-23 08:48:07)]


魔岩

职务:版主
等级:6
金币:34.0
发贴:4453
注册:2004/1/13 10:53:31
#202002/5/23 8:57:52
[问题]
当程序启动后怎么改变显示器分辨率?

[解答](From skcyh)
最简单的方法是用一个相关的外挂U32,例如altools.u32、Budapi.u32等
这里推荐用Budapi.u32(因为比较方便且稳定)

运行时可以初试化屏幕:(用一个计算图标)
SetWindowPos(WindowHandle,-1,0,0,0,0,3)---演示窗口在最顶层
WriteExtFile(RecordsLocation^"skcyh.ini","演示系统设置")---采用写文件的方式记录原来系统的显示参数,这是用在有文件跳转的情况下(通常也可以写注册表),如果是单文件演示可以直接要免去此部分
screenw:=ScreenWidth----记录变量参数
screenh:=ScreenHeight
screend:=ScreenDepth
baWriteIni("显示分辨率","width",screenw,RecordsLocation^"skcyh.ini")--写配置文件
baWriteIni("显示分辨率","Height",screenh,RecordsLocation^"skcyh.ini")
baWriteIni("显示分辨率","Depth",screend,RecordsLocation^"skcyh.ini")
if ((screenw<>800)|(screenh<>600)|(screend<>16)) then------检测并设置目标显示参数
setdisplay:=1 ---此为开关参数,记录了系统显示参数的变化情况
baSetDisplay(800,600,16)
else
setdisplay:=0
end if

程序运行后退出时恢复系统显示参数:
screenw:=baReadIni("显示分辨率","width",screenw,RecordsLocation^"skcyh.ini")
screenh:=baReadIni("显示分辨率","Height",screenh,RecordsLocation^"skcyh.ini")
screend:=baReadIni("显示分辨率","Depth",screend,RecordsLocation^"skcyh.ini")
if setdisplay=1 then
baSetDisplay(screenw,screenh,screend)
end if
Quit()



魔岩

职务:版主
等级:6
金币:34.0
发贴:4453
注册:2004/1/13 10:53:31
#212002/5/24 10:54:53
[问题]
如何实现单击鼠标进入光盘指定文件夹?

[解答]](Rock Studio 魔岩工作室)
看看下面的代码
(用资源管理器浏览当前执行目录下的Floder子目录):
--获得系统路径
WinSYSPath:=getOSDirectory()
--浏览当前目录下的Folder子目录
JumpOutReturn(WinSYSPath^"\\Explorer.exe" , FileLocation^"Folder\\.")



魔岩

职务:版主
等级:6
金币:34.0
发贴:4453
注册:2004/1/13 10:53:31
#222002/5/26 11:57:35
[问题]
"incremental matched"的用法和具体含义?

[解答](From Y)
如果【Pattern】文本框中包含了一个以上的单词,打开【Incremental Matching】复选框后,用户输入文本时可以得到多次重试的机会。比如,【Pattern】文本框的内容设置为“This is”,则用户在进行交互作用时可以先输入“This”,此时响应并未得到匹配,但用户仍有机会输入“is”来匹配此响应。



魔岩

职务:版主
等级:6
金币:34.0
发贴:4453
注册:2004/1/13 10:53:31
#232002/5/27 10:11:01
[问题]
我的aw的系统显示的字体被改了,但我不知道怎么改回来。中文是用的楷体倒还好,但英文变成了手写体了,看都看不清,怎么回事?

[解答](From lvzhiguo)
这主要是因为你安装了文鼎酷字体。解决方法:
之一:可以删除这些字体。
之二:这是一个完美的方法:
在Office 2000安装盘中寻找一个叫Arialuni.ttf的字体,它在某一CAB文件中。
先安装它,再安装其它字体。
它可解决3DSMAX的字体问题,比以前的什么补丁字体不知好上多少倍!!
这是汉化aw6的周氏工作室写在自述文件上的,我不过摘抄了一下
grass:点击这里下载arialuni.ttfhttp://www.fba.nus.edu.sg/viewchinese/arialuni.ttf
不好意思 这个字体是我从一个网站找的 我的几个空间都小 没法上传这么大的东东 3322.NET只有10M 533.NET也只有10M MYRICE倒有200M 可惜只能上传不能下载 国外的那个空间 30M 不过超过1M的文件好像被不能下载 看来要买空间了
我现在在家里用512K 的ADSL 下载 大概用了8分钟 安装了 相当好用
我安装了以后 ,再安装一个习字体 打开AW6以后 不是乱七八糟的字体了 用猫的朋友找不到Office 2000的话 强烈建议也要下载 装上这个字体后 你就会觉得物有所值
飞翔2000 :1、下了N次都不行呀。我的那张Office 2000里也没有这种字体。惨了
2、谢了,我找了很久,终于在一个叫office1的cab包中找到它了。现在已经成功地安装好了。高兴呀!连3dsmax 3的字体问题都解决了。高兴呀……



魔岩

职务:版主
等级:6
金币:34.0
发贴:4453
注册:2004/1/13 10:53:31
#242002/5/27 10:12:27
[问题]
如何在AW程序中实现用按钮调用Windows输入法?

[解答](From Y)
IME.U32可以打开或关闭输入法。例如ImeOpenClose(1, "E0230804")打开五笔9键输入法,E0230804是其在注册表中的键值。



魔岩

职务:版主
等级:6
金币:34.0
发贴:4453
注册:2004/1/13 10:53:31
#252002/5/31 10:30:58
[问题]
我在用Aw做《数据结构》课件时,我只是想在显示图标中编辑文本,输入例题,但是当我输入B=(K,R);K={ki|1≤i≤n} 时,AW会提示ki新变量,要求赋初值,描述,点确定或取消后又弹出警告框未知"≤"当输入算法时,
如stastus fun{
int num;
char name[8];
......}
除了说有新变量,还会说期望正确表达式,我曾尝试过在记事本中输好再拷贝到AW的显示图标或导入,但依然如故,请教AW高手我该怎么办?

[解答](Rock Studio 魔岩工作室)
AW在显示图标里面默认变量的显示方法为{variant},你这种情况可以在有花括号的前面加"\",即想显示{kkkk}应该改写为\{kkkk},例如:
B=(K,R);
K=\{ki|1≤i≤n}
这样最终显示出来的就是:
B=(K,R);
K={ki|1≤i≤n}



魔岩

职务:版主
等级:6
金币:34.0
发贴:4453
注册:2004/1/13 10:53:31
#262002/6/3 20:35:39
[问题]
DMX发布后,其中的avi在别的机子上不能用啊,要重新导入avi文件,如何设置相对路径?

[解答](Rock Studio 魔岩工作室)
假设你的movie.avi是放在打包目录下的avi子目录里,则在搜索相对路径里写入:
./avi/movie.avi
注意在DMX设置界面(GUI)下千万不能用Filelocation,但是在计算图标里却可以这样写:
SetIconProperty(@"DMX", #file,FileLocation^"三剑客.avi")

编辑历史:[这消息被Rock编辑过(编辑时间2002-06-18 22:46:00)]


魔岩

职务:版主
等级:6
金币:34.0
发贴:4453
注册:2004/1/13 10:53:31
#272002/6/7 11:53:56
[问题]
我打算用AW通过ODBC连接Access创建的数据库文件,在其他电脑上,是否需要重新在控制面板ODBC绑定数据库?是否需要安装同一版本的Access?

[解答](杨新)
不用,在tMsDSN.u32里有注册数据库到ODBC里的函数,只要在你的程序里有注册数据库的这一步骤,在任何机器上哪怕它没有安装ACCESS,都可以通过ODBC链接上ACCESS数据库。



魔岩

职务:版主
等级:6
金币:34.0
发贴:4453
注册:2004/1/13 10:53:31
#282002/6/7 11:55:52
[问题]
在做AU 时长用到Flash,但他无法和背景融合到一起,如何让Flash透明?

[解答](斑竹Y)
作FLASH时,保持默认的背景色不要变就行了。导入时不要选择direct to screen,在设计图标display选项卡中选择transparent。



魔岩

职务:版主
等级:6
金币:34.0
发贴:4453
注册:2004/1/13 10:53:31
#292002/6/7 11:58:32
[问题]
程序执行时,如何控制流程的暂停和继续播放?

[解答](斑竹skcyh)
分析程序的流程:
一般感觉上的暂停有三种可能:
1、程序流程停止:一般应用有让程序跳转并停留在某个图标对象中,当程序接受到跳转指令恢复程序流程
2、程序循环执行某个或某个组合:一般应用于侦测模快,等待侦测条件的变化跳出此循环
3、程序的挂起:最简单的例子就是文件之间的跳转
关于你的问题可能有如下可能:
1、基于视屏演示的多媒体程序,程序的暂停和恢复只要配合计算图标左以相关函数的调用即可。
2、基于框架页的多媒体程序,只要你对页与页的跳转加上侦测条件即可
3、调用外部程序实现边学边做,可以挂起au程序,压栈窗口句柄,之后在返回就可以了。

对于第2种情况可以按照下面做法:



如上图所示:
可以在每个页图标的最后放一个map图标,此map图标实现自动跳转功能,在自动跳转块中,有一个条件响应和一个条件跳转组成(这里由于应用了多个框架图标如果是简单的程序这里的可以直接用next跳转图标)

这里的条件相应为当变量pause=0时,触发程序执行条件跳转(即实现到下一页或者说程序继续执行否者程序在非外界条件下,总在执行次交互分支等待响应条件匹配。

编辑历史:[这消息被Rock编辑过(编辑时间2002-06-07 11:59:48)]


魔岩

职务:版主
等级:6
金币:34.0
发贴:4453
注册:2004/1/13 10:53:31
#302002/6/12 20:20:15
[问题]
片头播放FLASH如何控制已经播放完?

[解答](5D网友sun424)
如果不很精确的控制时间的话
在Flash...图标下再加上一个WAIT和删除图标,WAIT中只设置一个时间限制,时长比FFLASH正常拔入略长一点,
如果想确的控制时间:
时间这样得到

在FLASH和图标中放计算机图标
i:= GetIconProperty(@"Flash", #frameCount)--得到FLASH总帧数
v:= GetIconProperty(@"Flash", #frameRate)--得到FLASH总帧数当前的拔放速度
时间:=i/v