Multimedia Builder脚本全攻略Word下载.docx
《Multimedia Builder脚本全攻略Word下载.docx》由会员分享,可在线阅读,更多相关《Multimedia Builder脚本全攻略Word下载.docx(13页珍藏版)》请在冰豆网上搜索。
这样,一个变量名允许多媒体建立者记住放在盒子里的值(信息)你能命名一个变量以任何你想要的名字,但它只能字母数字的字符(字母表中的字母和数字)和底线(_)。
同样,像我在前面说的,如果你要变量是一个字符串,的话,它的名字后面必须有一个美元符号。
这样,你知道了什么是变量,但现在你要了解它们是如何使用的。
它是相当容易的。
当你要把一些东西放入到一个变量中,你所要作的一切就是用一个变量名来开始一个行,然后放一个等号,然后是值。
(字符串值必须放在单引号中。
)看起来就象这样:
**对于一个数字变量
MyVariable=10
**对于一个字符串变量
MyVariable$='
MyString'
(注意,我在每一行最后使用了注释。
这样制作的脚本更容易理解。
它们不是必须去设置一个变量。
如果你想随后改变一个变量的值,输入一个新的值。
你也能复制一个变量的值,把它的名字放入另一个变量值的位置上。
像这样:
MyVar2=MyVal
MyVar2$=MyVar$
数学功能
现在你可能觉得奇怪,两种不同的变量的好处。
如果你可以简单地使用一个字符串去控制数字,为什么还需要数字变量呢?
原因之一是数学功能。
格式几乎像幼儿园数学-基本的加法、减法、乘法和除法。
不同的是乘法用*,除法用/。
这儿是一个如何使用数学功能的例子:
A1=10+2**等于12
A2=A1-2**等于10
A3=A2*2**等于20
A4=A3/2**等于10
注意,对于A23和A4,我们使用了等式中的变量。
数学功能是非常漂亮的,不久是取数字,还能使用数字变量。
那为什么不能使用字符串。
数学功能不能使用字母,因为你不能用字母做算数!
这样数字变量就确保不是使用任何字符串。
另一个好的方面是你可以使用变量的值,你要把结果存储在等式部分中。
你正好可以像上面那样做,在这儿有一个例子:
A1=A1+1
因为多媒体建立者首先在等式中用它的值替换变量名,然后做等式。
变量的生命
如果有一个变量,要始终打开它吗?
只在程序运行时打开。
当程序关闭(选择或崩溃),程序就把变量从内存中全部删除。
为什么变量不能晚点离开?
因为程序使用RAM来存储变量。
RAM只是临时存储器。
这儿的地方是有限的,如果每个程序都把所有变量保存在那儿,不久你就没有任何内存来运行了。
事实上,如果它只是在使用之间离开,当关机时,计算机从内存中清除一切。
但你“能”在你的设计项目中的页之间访问一个变量。
要知道,当你使用运行其它项目功能时(或RunMBD命令做同样的事情),将丢失所有前面的变量,除非你使用NEW_WINDOW参数。
以后再使用变量,可以使用SaveVariable和LoadVariable命令去保存到登记库中(藏在其它课程中)。
好了,变量内容结束了,现在怎么样?
什么也没做。
事实上,除了离开了变量,你没有做其它任何事情。
像前面约定的那样,当程序关闭时,它就把你的变量舍弃了。
MultimediaBuilder脚本全攻略
(二)
变量
所有的变量都是全程变量-它们对所有的页都有效。
变量是浮点型(3.1415),而不是整数型(3)
你不一定要定义变量-所有变量的缺省值都是0。
例如:
a=a+1
也可参见字符串变量
数组
可以在数组中使用变量:
A_=0
A[b+1]=A[b]
你不一定要声明数组,并且数组可以是负值你可以使用基本运算*/+-等等
逻辑运算=<
>
|
if-then语句
if语句控制条件分支。
如果表达式的值不是“0”,那么if语句的主体是可以执行的。
关键字then是不要求的,它将由解释器插入。
表达式可以使用任何组合:
a<
=b;
a<
>
b;
a=b;
a=>
a>
b
你可以使用逻辑符号&
和|或
if(a=b&
10)then
end
...
关键字end必须关闭内部代码。
A=A+1
if(a>
4)then
Show("
text1"
Rect1"
你可以把if语句嵌入另一个if语句中-如果能够避免,就不这样做-代码会很混乱。
要点-在这儿没有其它命令,你必须用另一个if语句来替换。
For-next循环
这是一个典型的基本语法
forc=1to5
**函数
nextc
循环可以向上或向下计算:
forc=5to1
从循环中退出,你可以使用Return()命令(这将退出脚本)
无限循环
在特殊情况下(半并行处理)你也许想使用无限循环。
语法:
forc=0toinfinity(无穷大)
对MultimediaBuilder脚本全攻略(三)
字符串变量
基础
字符串变量结尾有一个$符号:
mystring$
赋予变量一个字符串,使用:
mystring$='
Thisisatext'
注意:
我们用“'
”而不用“"
”字符。
放一个“'
”字符在“\”后面(像Oscar'
s)
例如“
ThisisOscar\'
sproject'
你可以使用“\\”在一个字符串结尾加斜杠
path$='
c:
\mydir\\'
将被显示为c:
\mydir\
字符串可以使用加法运算符(和你想要的一样):
a$='
MMB'
mystring$=a$+'
iscool'
CHAR函数
不能混合使用数字和字符串变量。
我们使用CHAR功能把数字变量转换成字符串变量
value=2.45
mystring$=CHAR(value)
VAL函数
我们使用VAL功能把字符串变量转换成数字变量
mystring$='
1.222'
value=VAL(mystring$)
在IF-END中的字符串命令
我们对数字变量使用类似的语法:
if(mystring$='
yes'
....
end
或
if(mystring$<
'
...
于这种情况的更多信息参见半并行处理
MultimediaBuilder脚本全攻略(四)
预定义函数
常量和系统变量
这是一些常量:
TRUE-值是1
FALSE-值是0
ScreenWidth-返回显示屏幕的宽度
ScreenHeight-返回显示屏幕的高度
MXROW,MXCOL-对于矩阵对象,返回被点击的矩阵对象的位置-参见矩阵
MCIResult-从MCICommand功能返回结果。
更多的参见基本函数
CBK_Time-像CBK_Time对象一样,但这个变量返回以秒(整数)记的时间
CBK_Total-像CBK_Total对象一样,但这个变量返回以秒(整数)记的总时间
OpenFile$-从脚本里使用一个打开文件命令后,这个字符串变量就会有一个被打开文件的路径
随机函数
RND(最大值)
将在0-最大值之间返回随机整数
A=RND(50)+1
整数函数
总是从表达式生成一个整数值
a=INT(x/100)
if(a=0)then
ABS函数
返回表达式的绝对值
a=ABS(x-100)
鼠标函数
MOUSEX()
MOUSEY()
返回鼠标光标的x和y的位置
x=MOUSEX()
对象函数
OBJECTX(对象标签)
OBJECTY(对象标签)
这些函数返回由标签指定对象的当前位置(左上角)。
x=OBJECTX(Text1)
ISVISIBLE(对象标志)
这个返回
-1如果对象不在这页上
0如果对象是隐藏的
1如果对象是可见的
visible=ISVISIBLE(Text1)
if(visible=0)then
Text1"
MultimediaBuilder脚本全攻略(五)
基本函数
典型的函数语法:
函数("
参数1"
参数2"
这个函数使用0、1或2个参数。
参数在多数情况下可以用字符串变量代替,语法仍然一样:
函数("
参数$"
Hide("
OBJECT"
隐藏一个对象或对象组
显示一个对象或对象组。
如果你要显示GIF动画,GIF将从第一祯开始。
Invert("
显示或隐藏一个对象或对象组。
如果对象/对象组被显示,在这之前就是隐藏的。
Rectangle1"
Text0'
a$"
多媒体建立者4.4允许你在另一个页上的一个页对象修改,包括控制页和控制页顶层
使用语法:
Page:
:
Object"
例如隐藏首页上的Rectangle1对象,使用:
MasterPage:
Rectangle1"
MasterLayer:
Page1:
Text"
VideoPlay("
VIDEOOBJECT"
VideoStop("
播放和停止视频(AVI)对象
RunMBD("
PATHTOMBD"
PAGELABEL"
在同一个窗口运行另一个MBD设计项目。
你可以指定新的设计项目开始的页-但不是必须的。
这对于创建大的应用程序是非常重要的命令。
你可以把不同的数据块放入独立的MBD文件里,不是在页之间移动而是在文件之间移动。
这就允许你制作真正的大的多媒体,而不用考虑内存问题-旧式的项目是当新的一个被载入时,旧的就被从内存中删除。
同样,如果你使用全屏背景(触摸屏)-允许你跳转到另一个文件并从这儿载入背景,来改变背景位图。
不用忘了在路径中使用<
SrcDir>
!
Run("
PATH"
PARAMETERS"
运行外部程序。
你能运行文件查看器、安装实用程序等等。
同样,你也能在不同的窗口里运行另一个MBD项目。
甚至如果你创建独立文件(autorun.exe)-像一个参数一样用另一个MBD文件调用同一个文件。
(<
\autorun.exe、<
\otherfile.mbd)。
这样就在不同的窗口中打开了另一个项目。
(用不同的尺寸和甚至)
FirstPage()
LastPage()
NextPage()
PrevPage()
Page("
页的命令-在项目里跳到不同页。
在页的命令里你能指定LASTPAGE替换页名。
这样在设计项目中就会跳到最后的查看页。
Exit()
立刻退出应用程序。
Minimize()
最小化应用程序。
这是最小化按钮动作。
ExitTimer("
MILLISEC"
多少毫秒之后退出应用程序。
要知道PageTimer将取消这个命令。
同样点击在任何一个动作对象上都将取消这个命令-这是很重要的-你可以提供给用户一个返回按钮,而不是退出。
用这个命令,你能等待声音播放,或让你的徽标显示一会儿等等。
PageTimer("
PAGE"
多少毫秒之后到一个页去。
如果不指定页-就到下一页。
你也能用命令替换页的标签:
THIS_SCRIPT-将只运行同一页上的脚本。
THIS_PAGE-将再一次开始同一个页
不同的是-页开始时将所有的对象都放入默认的舞台,并且会看到一样的背景音乐-然后运行脚本。
要点:
点击任何动作对象就取消这个命令!
使用另一个PageTimer或ExitTimer将取消前面的PageTimer。
用这个你可以做自己运行的简报-如果在一段时间里用户不点击任何对象,多媒体建立者将进入下一页。
如果用户点击一些动作对象,PageTimer就被取消(用户想要停留在页上),如果你要像那样离开或在按钮上点击,重新开始PageTimer例如你可以制作一个艺术代表作选集演示,每项都在不同的页上,如果用户要停止演示,就按暂停按钮。
DisplayValue("
TEXTOBJECT"
VARIABLE"
在一些文本对象中显示一个变量的整数部分。
这对计算器等是非常好的。
Message("
ANYSTRING"
大部分用于调试。
你可以用一些变量的整数值做一个退出信息框。
Return()
从执行脚本返回。
你可以把它用于IF-THEN语句。
AGifPlay("
ANIGIFOBJECT"
AGifStop("
AGifReset("
GIF动画命令。
play将从现在的祯开始播放动画,stop就停止动画。
reset就设置现在的祯到第一祯。
动画如何动作依赖于GIF动画属性。
RunScript("
运行其它脚本对象。
你要建立一些各种通用的功能,最好是运行ScriptObject脚本。
你能从任何对象上运行脚本-MouseUp脚本就会运行。
你可以运行同样的脚本-建一个循环调用。
除非你能确定你不使用循环。
ScriptTimer("
MILISEC"
运行对象上的脚本或多少毫秒之后对象上的脚本。
(参见RunScript)这对于在一段时间后隐藏一些信息框等是很好的。
MCICommand("
MCISTRING"
MCI命令。
给一个设备发送一个字符串。
这个字符串告述设备去做什么。
用这个命令可以控制播放MPEG、VCD、录音、播放动画等等设备。
你可以在字符串里使用<
、<
SrcDrive>
或<
CD>
。
同样,使用带目录命令的<
This>
去告述多媒体建立者窗口成为子目录窗口。
这是一个在MBD项目的(100,50,100,100)位置上播放MPG电影的小例子:
打开<
\sample.mpg别名为MPEG样式的子目录<
"
把MPEG放入10050200200的窗口中"
窗口MPEG的状态为隐藏"
播放MPEG"
打开和关闭光驱的门
设置光驱门打开"
设置光驱门关闭"
一些MCI命令函数可以返回一个值(例如在CD上的轨道号)
变量MCIResult会有一个结果数字。
返回CD上的轨道数
光盘轨道数情况"
MCIResult"
例2“返回轨道1的长度(秒)
MCICommand(“光盘轨道1长度情况”"
statuscdaudiolengthtrack1"
Text_totalsec"
例3:
返回CD音频的状态
MCICommand(“光盘模式情况”"
statuscdaudiomode"
if(MCIResult==-2)then
Playing"
if(MCIResult==-1)then
Stopped"
要完全理解和掌握语法,请查阅微软的文档。
这样就可以直接访问设备-如果你要试验的话,彻底地准备一下。
OpenFile("
filter"
"
default"
打开FileOpen对话框。
选择的文件修改<
File>
快捷方式和OpenFile$字符串变量的筛选。
例子:
MPEG文件(*.mpg)|*.mpg|AllFiles|*.*||
这样就在打开文件对话框建立了两个选项MPEG文件和所有的文件。
“|”字符在条目之间,“||”在最后。
格式是:
文字被显示在小的框中“|”连接扩展名“||”
其它的参数是缺省扩展名。
例如*.mpg
使用这个命令后,你可以使用<
甚至<
TextFiles(*.txt)|*.txt|AllFiles|*.*||"
*.txt"
你选择的文件是"
OpenFile$"
LoadText("
Paragraph"
<
这个例子载入了一个文本文件,把它显示在段落文本中(带标签的段落),并显示一个带路径的信息对话框。
FileString("
substring"
variable"
打开文件以后搜索<
与第一个子字符串相匹配的字符串。
放入子字符串(例如):
.wav
如果<
有一个子字符串'
.wav'
,变量(第二个参数)就变成1
AllFiles|*.*||"
*.*"
.wav"
result(结果)"
if(result(结果)=1)then
WavePlay("
安装字体
如果你使用了一些在用户的系统上可能没有的字体-它就会用其它字体来代替-不是你喜欢的效果。
使用InstallTTF你可以在用户的计算机上临时安装你的字体。
退出应用程序之后,字体就被反安装了。
把你的funny.ttf字体放在发布的光盘上,在应用程序开始时调用:
InstallFont("
\funny.ttf"
FileExist("
PATHTOFILE"
如果外部文件存在就测试。
如果“是”变量就取值1否则取值0
MultimediaBuilder脚本全攻略(六)
声音和CD命令
Wave
PATHTOWAVE"
command"
WaveStop()
Wave命令。
播放国停止外部或内部(嵌入)的Wave文件。
在命令中,你可以指定循环,这样就一直循环播放wave,直到使用WaveStop()。
要知道,用DirectSound使用循环是最好的。
否则在循环中间会有缺口。
对于嵌入wave只给出wave名,不用任何路径。
嵌入wave的名字是(并且必须是)不带扩展名的。
MP3
MP3Open("
PATHTOMP3"
MP3Play()
MP3Stop()
MP3Pause()
MP3命令。
MP3文件必须是外部的。
你有一些播放MP3文件的方法(外部命令和页的动作-你可以从页的属性、声音动作、脚本使用MP3的FW和BW)
如果你在MP3Open中使用空字符串,打开文件对话框将出现。
查找CBK_Objects,参阅如何从MP3播放器取得反馈。
CD
CDPlay()
CDStop()
CDPause()
CDTrack("
NUMBEROFTRACK"
CDFW()
CDBW()
CDPlayPause()
CD音频命令。
要知道,如果你制作的混合式光盘轨道有两个号(1是数据轨道)
在CDTrack中也可以使用变量:
a"
Midi
MidiPlay("
PATHTOMIDI"
[LOOP]"
MidiStop()
Midi命令。
MIDI是外部文件。
MOD文件
MODOpen("
PATHTOMOD"
打开和播放Mod模块文件。
MODPlay()
播放被打开的MOD文件。
MODStop()
停止被打开的MOD文件。
PlaySound("
path"
播放所有支持的声音格式。
格式视文件的扩展名而定。
命令将首先停止所有当前正在播放的声音。
你能在通过打开文件命令使用<
);
音量
VolumeUp("
volume"
如果没有指定音量参数,就增加控制音量5%。
音量参数0-100(音量的百分比)
40"
VolumeDown()
减小控制音量5%。