2023年11月23日发(作者:)

MMB常用脚本关键字

AGifPlay("ANIGIF OBJECT")

功能:播放GIF对象动画

例:播放标签名为”Gif_01”GIF对象:

AGifPlay("Gif_01")

AGifStop("ANIGIF OBJECT")

功能:停止GIF对象动画

AGifReset("ANIGIF OBJECT")

功能:从第一帧重新开始GIF动画

Clipboard("SEND/GET","stringvariable$")

功能:从剪贴板获取或向剪贴板发送字符串变量

说明:SEND/GET 指定发送/获取方式; stringvariable$ 字符串变量

例:将字符串:Multimedia Builder 复制到剪贴板

mmb$="Multimedia Builder"

Clipboard("SEND","mmb$")

DisplayValue("TEXTOBJECT","VARIABLE")

功能:将 VARIABLE 赋值给文本对象并显示文本对象的值

例:将变量 a 的运算结果赋值给文本对象 text1,显示为2068

a=1234*2

DisplayValue("text1","a")

Exit()

功能:结束当前工程

说明:当主页顶层(Master Top Layer)包含 CBK_Exit 对象(组)时,执行 Exit( ) 命令

并不会直接结束工程,而是执行 Show("CBK_Exit") 命令。

参见:Samples 目录的

ExitTimer("MILLISEC")

功能:等待指定的时间后结束工程

说明:MILLISEC 毫秒数

注:PageTime( ) 命令将使该命令失效。

FileExist("PATH TO FILE","VARIABLE")

功能:检测外部文件是否存在

说明:PATH TO FILE 指定路径和文件名; VARIABLE 返回值,为"1"表示存在;为"0"

则不存在

例:检测当前目录是否包含 ,如果文件存在,变量 test_a 返回值为"1"

FileExist("","test_a")

FirstPage()

功能:跳转到工程第一页

FileString("substring","variable")

功能:从打开的文件中查找匹配的字符串

说明:substring 查找字符串; variable 返回值。如果存在返回"1",不存在返回"0"

例:弹出打开文件对话框,如果选择的打开文件包含 .wav 字符则该文件

OpenFile("All Files|*.*||","*.*")

FileString(".wav","result")

if (result = 1) then

WavePlay("")

end

Hide("OBJECT")

功能:隐藏对象或组中的对象

注:MMB 4.4及以后版本可以在命令中指定对象的所在页(包括主层和主页),格式为

Hide("Page::Object")

例:Hide("Page 1::Text01")

Hide("Master Page::Bitmap01")

Hide("Master Layer::Bitmap01")

Invere("OBJECT")

功能:翻转对象或组中对象的显示/隐藏状态

LastPage()

功能:跳转到工程最后一页

LoadText("TEXTOBJECT","VARIABLE")

功能:从一个字符串变量或文本文件读取文本内容并赋值给段落文本、文本或文字按钮对象

说明:TEXTOBJECT 文本对象

VARIABLE 变量

注:更多的LoadText命令格式

LoadText("TextObject","variable$")

LoadText("TextObject","path")

LoadText("TextObject","")

LoadText("TextObject","Number")

LoadText("variable$","path")

LoadText("variable$","Number")

LoadVariable(“KeyName”,”Valume")

功能:从 Windows 注册表读取已经保存的变量值

说明:KeyName 保存到注册表中的键名,可以与变量名不同;Valume 已经保存的变量

注:该命令将从注册表的以下位置读取变量: Valume = KeyName

HKEY_CURRENT_USERSoftwareMMBuilderMultimedia BuilderMyApp

Message("ANYSTRING","VARIABLE")

功能:弹出一个警告窗口

说明:ANYSTRING 警告文本; VARIABLE 变量值

Minimize()

功能:最小化当前工程

NextPage()

功能:跳转到工程下一页

OpenFile("filter", "default")

功能:调用Windows打开文件对话框

说明:Filter 文件类型过滤器,格式如 MPEG Files (*.mpg)|*.mpg|All Files|*.*|| 过滤器

的最后要求使用“||”作为结束符; Default 默认的打开文件类型

注:被选择的打开文件名保存在系统变量 OpenFile$ 中,文件内容存放在系统变量 File

例:从打开文件对话框打开一个文本文件并赋值给 Paragraph 文本对象

OpenFile("Text Files (*.txt)|*.txt|All Files|*.*||","*.txt")

Message("The file you selected is","OpenFile$")

LoadText("Paragraph","")

Page("PAGE LABEL")

功能:跳转到工程指定页

说明:PAGE LABEL 页标签名

PageTimer("MILLISEC","PAGE")

功能:等待指定的时间后跳转到指定页

说明:PageTime("MILLIEC","THIS_PAGE") 将在指定时间后重新执行当前页;其它参见

Page( )

注:在等待时间鼠标点击任何交互对象都将取消该命令;也可以指定一个脚本名在指定的时

间后运行

PrevPage()

功能:跳转到工程上一页

Return()

说明:从当前执行的脚本返回

RunMBD("PATH TO MBD","PAGE LABEL")

功能:运行一个外部MBD文件。

说明:PATH TO MBD MBD文件路径和文件名; PAGE LABEL 指定运行MBD文件的

起始页

注:在指定MBD文件路径时不允许使用系统变量形式的路径

RunScript("OBJECT")

功能:运行指定对象所包含的脚本

SaveVariable(“KeyName”,”Valume")

功能:将变量值保存到 Windows 注册表

说明:KeyName 保存到注册表中的键名,可以与变量名不同;Valume 保存变量名

注:该命令将向注册表的以下位置写入: KeyName = Valume

HKEY_CURRENT_USERSoftwareMMBuilderMultimedia BuilderMyApp

ScriptTimer("OBJECT","MILISEC")

功能:在指定的时间后运行指定对象包含的脚本

说明:MILISEC 毫秒数

SendComand("Binder","m,n")

功能:向捆绑应用程序对象(Binding Object)的菜单传递执行命令

说明:Binder 捆绑对象;m 第几项菜单(左起第一项为“0”);n 菜单第几项命令(上

起第一项为“0”,包括菜单分割线)

例:向捆绑了记事本的对象Bin_01 传递"文件" > "打印" 命令

SendCommand("Bin_01","0,6")

Show("OBJECT")

功能:显示对象或组中的对象

注:对于 gif 动画将从第一帧开始显示。

MMB 4.4及以后版本可以在命令中指定对象的所在页(包括主层和主页),格式为

Hide("Page::Object")

例:Hide("Page 1::Text01")

Hide("Master Page::Bitmap01")

Hide("Master Layer::Bitmap01")

VideoPlay("VIDEO OBJECT")

VideoStop("VIDEO OBJECT")

功能:播放或停止视频(AVI)对象

CDBW()

功能:CD快退

CDFW()

功能:CD快进

CDPause()

功能:暂停播放音乐CD

CDPlay()

功能:播放音乐CD

CDPlayPause()

功能:切换CD的播放/暂停状态

CDStop()

功能:停止播放音乐CD

CDTrack("NUMBER OF TRACK")

功能:指定并播放音乐CD某一音轨

说明:NUMBER OF TRACK CD音轨

注:对于制作的混合模式CD,第一音轨的序号可能是"2"

MidiPlay("PATH TO MIDI","[LOOP]")

功能:播放外部MIDI文件

MidiStop()

功能:停止播放MIDI文件

MODOpen("PATH TO MOD")

功能:打开并播放Mod文件

MODPlay()

功能:播放打开的 Mod 文件

MODStop()

功能:停止播放 Mod 文件

MP3Open("PATH TO MP3")

功能:打开并播放MP3声音文件。

说明:PATH TO MP3 MP3声音文件的路径和文件名。

注:MMB中只能播放外部MP3声音文件;如果命令使用空字符串作为参数:Mp3Open("")

命令会自动弹出打开文件对话框。

Mp3Pause()

功能:暂停当前播放的MP3声音。使用Mp3Play()从当前暂停位置继续播放

Mp3Play()

功能:播放当前打开的MP3声音文件

Mp3Stop()

功能:停止当前播放的MP3声音

PlaySound("path")

功能:播放所有支持的声音文件格式。

注:可以使用PlaySound("")在打开文件对话框中选择播放的文件

VolumeDown("volume")

功能:向下调整计算机主音量5%

说明:volume 如果指定具体值,则调整到给定值(0100

VolumeUp("volume")

功能:向上调整计算机主音量5%

说明:(同VolumeDown

WavePlay("PATH TO WAVE","command")

功能:播放外部或置入的WAV声音文件。

说明:PATH TO WAVE 外部WAV文件及其路径,对于置入的WAV文件不是用路径,

但要直接使用WAV声音文件名(不是MCI对象名)并必须包括扩展名; command 可以

使用"LOOP"来强制声音的循环播放,直至使用WaveStop()命令停止。

注:"command"若不使用"LOOP"参数,必须用一空字符串代替,并必须包含在命令之中。

WaveStop()

功能:停止WAV声音的播放

MoveObject("Object","x,y,w,h")

功能:移动对象(或组)

说明:Object 操作对象; x,y 对象坐标; w,h 对象宽高

MoveTo("Object","x,y,steps,type")

功能:移动对象(或组)从当前位置到目标点; 说明:Object 操作对象; x,y 目标点;

steps 移动所需的步数(越多则运动越平滑); type 动作类型:(无)表示线性移动类

型;EASYTO表示减速运行;EASYFROM表示加速运行

Pause("ms")

功能:暂停脚本执行

说明:ms 暂停时间(秒)

Refresh( )

功能:强制刷新屏幕(无参数)

媒体控制命令

通用格式:MCICommand("MCI STRING")

说明:在"MIC STRING"中允许使用 来指定相对路径

InitTTS()

功能:初始化系统TTS引擎

注:要求 Windows 系统必须已经安装TTS系统。执行这个命令需要几秒钟的时间,并会

在屏幕显示一个很小的检查信息框。

InstallTTS("PATH")

功能:从指定的位置安装TTS系统

说明:该命令会首先检测 Windows 系统是否已经安装 TTS 引擎,如果已经安装则会自动

跳过。

注:Multimedia BuilderTTS 目录下的 文件中列举了许多可以免费下载

TTS 安装程序的网址(TTS引擎是微软的一个免费软件)

PitchTTS("Frequency")

功能:改变TTS引擎朗读频率

注:范围在 50 200 之间,默认为 100

PauseTTS()

功能:暂停当前的TTS朗读

ResumeTTS()

功能:继续暂停的TTS朗读

SpeakText("TextObject")

功能:阅读文本对象的文本内容

例:朗读页面文本对象 text02 中的文字内容

SpeakText("text02")

SpeedTTS("Speed")

功能:改变TTS引擎的朗读速度

注:范围在 30 450,默认为 150

StopTTS()

功能:停止当前的TTS朗读

CBK_CurItemList

功能:显示当前播放的MP3在播放列表中的位置

CBK_Exit

功能:被 Exit( ) 命令激活并显示

说明:当主页顶层(Master Top Layer)包含 CBK_Exit 对象(组)时,执行 Exit( ) 命令

并不会直接结束工程,而是执行 Show("CBK_Exit") 命令。

参见:Samples 目录的

CBK_MP3Bit

功能:显示MP3文件的采样率

注:显示格式为 XX Kbips

CBK_MP3EOF

功能:MP3特殊脚本对象

说明:如果一个脚本在当前页、主页或主层切它的标签为CBK_MP3EOF,当一段MP3

放到末端时该脚本会被自动运行。

CBK_MP3Freq

功能:显示当前MP3文件采样频率

注:显示格式为:XXXXX Hz

CBK_MP3Name

功能:显示当前MP3音乐名

CBK_NumInList

功能:显示当前播放列表中的项目总数

CBK_MP3Type

功能:文本对象。显示文件类型

注:对于MP3文件显示:MPEG 1 Audio Layer 3

CBK_Time

功能:文本对象。显示当前MP3文件播放经过的时间

CBK_Total

功能:文本对象。显示MP3文件的音乐总长度。

注:显示格式为XX:XX

功能:播放列表中的下一曲

MP3ListLoad("path")

功能:从外部文件装入一个MP3列表

MP3ListPlay("")

功能:按内部列表顺序播放MP3文件

MP3ListPrev()

功能:播放列表中的上一曲

MP3ListReset()

功能:从内部MP3列表中删除所有项目

MP3ListRND()

功能:随机排列当前的内部列表

SearchForMP3("path")

功能:在指定的路径搜索MP3文件并全部添加到播放列表

MatrixSet("matrix object[column,row]","image index (0...3)")

功能:定义矩阵图像某一行列坐标的图像索引值

说明:matrix object 矩阵图像标签名; colume,row -- 行列坐标;image index 图像

索引值(0-3

注:图像索引值为0表示不显示图像;行或列坐标值为0表示操作整个行或列;行列值均

0表示操作整个矩阵图像

MatrixGet("matrix object[column,row]","variable")

功能:将一个变量放置到图像矩阵的某一行列坐标,变量值会对应该坐标的图像索引值变化

而变化。

MP3播放器自己做

李军

看过前面介绍的MP3制作方法,有没有想过再自己动手制作一个MP3播放器呢?别以为MP3播放器只有那些高手

通过编程的手段才能实现,实际上,无需编程也能制作出相当专业的MP3播放器来。秘密就在于——Multimedia Builder

V4.8。它的下载地址是/ Multimedia ,下载文件大小为5722KB。我们来看看如何用它

制作一个漂亮的MP3播放器。

启动Multimedia Builder V4.8,程序会自动建立一个新项目,执行“Project/General Setting”命令,打开项目设置窗口

(如图1设置Window对话框的宽度为300高度为100(单位为像素,即生成后的MP3播放器界面尺寸)“Window”

后面的文本框中输入文本,如我的MP3播放器!作为播放器的页面名称,然后将“Standard Window”前的复选框清除,

再选择“Movable”选项,使界面窗口可以移动。接下来在“Palette”选项中选择“Graphic MMB”,单击“OK”返回到主界面。

1

执行“Page/Properties”命令,打开页面参数设置窗口(如图2,在Color后面的选项卡中设置页面背景颜色,完成后

单击“OK”按钮返回主界面。

2

在工具箱中选取“Fill Retangle”工具,并在播放器中画出一个矩形区域,然后双击此区域,在打开的对话框中设置Fill

(填充色)Border(边框色),同时在后面的列表框中选择线型为SunKen,然后按“OK”按钮返回,一个有立体感的显

示窗口制作完成。

点击工具栏的插入工具按钮,在打开的下拉菜单中选择“Insert MP3 Control”命令,这样就可以在页面中插入一组播

放器控制按钮了,同时还会自动添加一个总时间显示播放时间显示文本提示标签,用鼠标可将该标签移动到合适

的位置。

现在为播放器添加MP3歌曲的提示信息,选取工具栏的文本工具(Text),然后在显示器上画出一个矩形区域,双击

此文本区域打开“Text Properties”文本属性窗口(如图3,在文本区域输入名称:”,然后单击“Font”按钮,在打开的字体

对话框中设定字体,如宋体、9号字

3

然后在刚才插入的文本后,新插入一个文本标签,在“Text Properties”文本属性窗口中,清除文本区文字,再点击

“Label”右侧的箭头,在弹出的菜单中选择“CBK_MP3Name”,并按“OK”按钮返回。同样道理,还可以添加更多的文本标

签,并设置更多的提示显示信息。“Label”选项中几个常用标签选项的含义为:

CBK_Totals:歌曲的总时长

CBK_Time:当前播放的时间

CBK_MP3Type:歌曲的类型

CBK_MP3Bit:位速率

CBK_MP3Freq:采样率

CBK_Channels:控制类型

完成提示信息设置后,开始制作音量控制按钮。首先在工具栏选择“Text Button”工具,然后在界面上添加一个命令

按钮,双击此按钮,在打开的对话框中设置显示文字为增加音量,然后单击“Action”栏中的“More Actions”按钮,在打

开的对话框中单击“Start ClickingMouse Down中的 “Wizard”按钮,然后在弹出的“Scrip Wizard”窗口中设定“Action”

“VolumeUP( )”“OK”“Action”

“VolumeDown()”

我们现在为播放器加入支持MP3文件播放列表功能。添加一个按钮,然后设定此按钮文字为播放列表并在“More

Actions”的对话窗口中设定“The Click is Finished”“Actions”值为“MP3ListEdit()”“MP3ListPlay("0")”

完成按钮的设计后,下面来为播放器设计最大化和最小化按钮。在工具箱中选择矩形工具,并在窗口右上方画出一

个矩形区域,并双击此矩形区域,在打开的对话框中选择“Enable Action”选项,单击“External Commands and Page Actions”

按钮,在打开的对话框中(如图4,设置“On Mouse”事件为“Minimize”。同样我们还可以添加一个关闭按钮,并设置其

“On Mouse”事件为“Exit”

4

你也可以把自己的主页地址放在播放器的标题栏中,在标题栏添加一段文本,然后双击此文本,在打开的对话框的

文本输入区域中输入文字主页的名称,然后选择“Enable Action”选项,单击“External Commands and Page Actions”,设置

“On Mouse”事件为“Brow web”,在“Path”中输入相对应的网址即可(如图5

5

现在,我们完成了一个MP3播放器的制作,最后执行“File/Compile”命令,将我们的工作编译成为一个EXE文件,

直接执行此可执行文件就可以使用我们亲手制作的MP3播放器了(如图6

6

插件

插件是用MMBSDK(软件开发工具包)开发的Windows的动态链接库。插件扩展了MMB的功能。

插件和其它的对象能表现得一样。这是针对开发者的部分。插件是用VC++MMBSDK编译的。如果你是一些MMB

插件的用户,请参阅插件的文档。

注意:MMB插件是为MMB设计的动态链接库。其它像Photoshop的插件无法应用!

载入插件:菜单对象-插件-在工作区拖拽一个插件矩形框。

矩形框说明:插件(空的),双击它,从属性窗口你可以载入DLLDLL可以是外部的或嵌入的。如果插件的DLL

留在外部的与相同的目录里或插件的子目录里,你没有必要写。

载入DLL后,MMB会问你是否要使用嵌入的插件。如果选择,插件会变成嵌入式的。

插件有自己的属性。如果是这种情况-插件的属性会被打开。

同样一些插件要求一个、两个或三个位图被载入-那么图象1...3会被打开。

MMB的插件在插件子目录里。缺省时这儿只有一个插件例子:

脚本动作:插件也可以有一个点击被赋值的脚本。用户在插件对象上点击鼠标,脚本就会运行。

一些插件(像标准的DLL)不要求任何MMB接口,它们像一个对象一样不显示任何东西。

例如DLL有它自己的独立的窗口,或DLL播放一些指定的声音格式等等。

对于这样的DLL或插件,有一些功能在脚本里:

PluginRun

PluginRun("PlugIn","GlobalVoidFunction")

载入的没有MMB界面的DLL就象一个插件,属性指明为未知界面,但你能一直运行一个全局的空函数。

更多的信息参阅SDK。第一个参数是载入插件对象。DLL不一定用SDK制作。

PluginSet("PlugIn","variable")

PluginSet("PlugIn","stringvariable$")

设置变量或字符串变量给插件的全局函数-DLL必须用SDK完成。

PluginGet("PlugIn","variable")

PluginGet("PlugIn","stringvariable$")

从插件中取得一个值或一个字符串。插件必须用SDK完成。

矩阵函数

MatrixSet("matrix object[column,row]","image index (0...3)")

设置图象矩阵条目的图象。

例如我们喜欢在位置2,32列,3行)上显示图象2

矩阵对象有一个标签MyMatrix

MatrixSet("MyMatrix[2,3]","2")

我们可以在矩阵里用0来告述MMB去设置所有的行或列的值,甚至所有的条目:

MatrixSet("MyMatrix[0,3]","2")

设置在行3,所有列是2的图象

MatrixSet("MyMatrix[5,0]","2")

设置在列5,所有行是2的图象

MatrixSet("MyMatrix[0,0]","2")

设置所有行和列是2的图象

MatrixGet("matrix object[column,row]","variable")

这个命令会把在位置(列,行)中的图象的指针放入变量中

看这个程序:

cur = 0

MatrixGet("MyMatrix[2,3]","cur")

if (cur = 1) then

MatrixSet("MyMatrix[2,3]","2")

end

当前的列和行

如果在矩阵对象上点击,将会很好地了解真正被你点击的行和列。

变量MXCOLMXROW接收这些信息。

思考这两行里图象矩阵对象MyMatrix中的脚本:

MatrixSet("MyMatrix[0,0]","1")

MatrixSet("MyMatrix[MXCOL,MXROW]","2")

这两行是图象矩阵对象里做完全不同工作的脚本。

第一行设置所有条目到图象#1,第二行设置你点击的条目到图象#2

变量MXCOLMXROW在图象矩阵后面真是漂亮。