What's new in MMB4.9.5?
MAIN ADDITIONS AND REPLACEMENTS :
MMB Video object:
MMB Video object is now completely rewritten! The days of
an obsolete and not reliable MCI video playback are
counted! The MCI object still remains there and unchanged
(for technical experts), but the Video object is now a
fully featured and easy to use DirectShow player. Of
course, there are some dependencies on the installed video
codecs; however, if you have installed Windows Media
Player 7 or higher, you should have all the usual codecs
installed. Now it is possible to run multiple video
objects on a page at the same time!
Bitmap object enhancements:
Added a lot of new Image related scripting commands and
designer enhancement. Now you will be able to preserve the
Image size, or stretch image to fit window, resize/rotate
the image and preserve its aspect ratio and lots of other
things. Look at the detailed
Bitmap Object description.
Polygonal Hot-spot:
ZoomTool:
MMB Script:
A lot of new scripting commands were added to work with
strings, date/time, video, image/hotspot/polygon
object resize and rotation, and many others. BTW,
complete list of all MMB functions, CBK variables and
predefined functions is now accessible over the
right-click menu in MMB scripting dialog (both
basic and enhanced windows) and scripting functions
are no longer case sensitive.
Check the Scripting Unleashed chapter in help. This chapter is really important to all of you who want to understand MMB Scripting. We really recommend you to check this chapter (thanks Bokzy! :)
OTHER ENHANCEMENTS:
-
Added tooltips and ability to change the default cursor on
some next objects (Bitmap, Polygon objects, Matrix, Text
and Text Edit).
-
Added the ability to change the color of HTML status
bar and progress bar (designer).
-
Added the option to
run just one instance designer/compiled
application.
-
Added a button to delete
all guide lines (menu Edit>>> Edit
Guides).
-
Added buttons and
shortcuts to Page Manager for inserting (INS) and
deletion (DEL) the publication pages.
-
Added the ability to change the colors of
AudioVisualization object - Equalizer (both from
designer and script).
-
Added a Minimize button to the standard project window.
-
Added the ability to completely disable the Flash right
click menu.
-
Added the ability to load Flash file in its original
size and maintain its aspect ratio.
-
MMB4.9 files can now be
saved in 4.8 compatible file format. All 4.9 related
things will be removed and scripts will be amended.
-
Each change in a
Dimension tool can be confirmed by Enter and not only by
"Apply" button as previously.
-
FMOD audio library updated to version 3.6.2.
-
Restored the ability to change the Player.exe icon
(Compile dialog).
-
The main Object toolbar is now redesigned to popups
(according common features). However, if you don't like
the popups, you can switch back to the previous long
toolbar (View>>>Toolbars>>>Object
Toolbar (simple)).
-
Video Object now supports audio playback (mp3,ogg,
mi,
mi, midi, rmi, wav, snd, au, aif, wma, asf), but without
the ID tags!
-
Added
the option to enable/disable multiselection, item
numbering and audio time in a ListBox
object.
-
LoadVideo
and
ReplaceImage
functions
now supports OpenFile button in the "Path" parameter. You
will no longer need to Copy and Paste the absolute paths
from somewhere else (i.e. windows
explorer).
-
ListBox object now supports Drag&Drop from outside of
MMB application (e.g. from windows explorer).
-
Added the option to load the audio and video files as a
parameter of a compiled MMB application. Of course,
if you want to run a video from command line a video
object must be available in the running application.
-
Added On Load, On Start and On Stop/Finish events to the
Video object (check the Run Script option in Video
properties).
-
Polygon object can now be resized.
-
Already opened and changed projects are marked with * mark
in the MMB title bar (behind the project name).
-
Added the option to
compile final application without the FMOD audio library
(NoFMOD option in Compile dialog).
-
MMB internal playlist (m3l) now supports Video files
storage.
- All windowed objects (Flash, HTML Browser, Binding,
ListBox or AV) can now be added on Master Page and
Master Top Layer and controlled via script! This allows
you to use single Flash object on the Master Page as a
project menu or single ListBox for entire project.
-
Significantly improved "Snap To Grid" feature. Snap To
Grid now works with all objects as expected (including
creating objects and dragging the object corners! ;)
-
ZoomTool floating can be disabled by toggling ZoomTool
button OFF/ON (and not only by Ctrl+Space shortcut as
previously).
-
Improved speed of Enhanced Script window.
-
Multiple embedded sounds can be now played at the same
time.
-
Message box caption is now set according the project
window title (Project>>Project Settings menu).
SCRIPTING ENHANCEMENTS:
-
Added commands to resize/rotate Bitmaps, Hotspots (w/o
image) and filled polygon objects.
-
SearchForSong now
supports file extension filtering...
SearchForSongs("C:\",”mp3,ogg,wav").
-
Added a lot of new
CBK_Time and
CBK_Video related
commands.
-
Added <Temp>, <Windows>, <System> predefined
variables.
-
All <> variables
(like a <SrcDir>, <CD>, <System>) can now be
expanded to a string variable.
-
RunScript
and
ScriptTimer
commands can now be
called from the Master Page or Master Top Layer -
RunScript("Master
Page::Script")
-
Added some new
predefined functions
(
WinVer
,
ScreenCol
,
PubWidth
,
PubHeight
,
UsingWinNT
, ...)
-
Added new CBK variable for obtaining the current page
name - CKB_PageName
.
-
WMA and ASF now returns
correct CBK time variables.
-
Audio CBK now supports
reading OGG tags.
-
Added two new CBK variables for obtaining the total
time of songs in the internal song list -
CBK_TotalList and
CBK_TotalSecList .
-
Added many new string
handling functions .
-
Added PageExit event.
-
FMOD and Flash Error/Warning messages can be disabled
(Compile page) and then handled by
CBK_Error variable.
-
Predefined functions
ObjectX
,
ObjectY
,
ObjectWidth
,
ObjectHeight
and
IsVisible
now supports string
variables as a parameter i.e.
ObjectX(object$).
-
Added new
ListBoxSort("object","param")
function. Possible parameters: NAME, TIME, REVERSE and
RANDOMIZE.
-
Added new
ListBoxMoveItem("ListBox1","PositionNum").
-
Added FMODConfig
function for changing the
configuration of FMOD audio library (DX, SW or None + MPEG
accurate playback) at runtime.
-
Added three new predefined functions
for checking the actual mouse state -
MouseLButton(),
MouseMButton() and
MouseRButton() Returns 1 if
mouse is pressed and 0 if released.
-
If..End conditional loop finally
supports Else
;)
-
Added WAIT parameter to Run command. This will cause
pausing the MMB application until external application is
running. Usage: Run("C:\WINNT\notepad.exe","WAIT") or more advanced
example Run("C:\WINNT\notepad.exe","TOPMOST,WAIT c:\your.txt")
-
Transparent parts of the bitmap objects will not detect
the mouse clicks.
-
Scripts can now be saved/loaded to/from external files
(Designer option...sorry guys, but the runtime loading of
external script files is not yet available ;)
-
Added BackgroundPlay ,
BackgroundPause and
BackgroundStop
commands for controlling the Background music at runtime.
-
Added a syntax completion to MMB script. However, because
this feature doesn't need to satisfy everyone, you can
turn it OFF by right click menu in script window.
-
Function SongListSave
now allows you to save the internal songlist to file with
any extension you want to use. But the file format of the
saved list will be still plain txt (or MMB internal
m3l format if you want)
SongListSave("SongList","c:\test.aaa").
-
Added CBK_URLPath for obtaining the actual path from HTML
object.
-
Predefined String functions can now be merged within
the single line of code e.g. s$=
CHR(55)+
CHR(60)
-
SongListLoad
now supports
loading of m3l, m3u, pls and txt file formats.
- Object arrays (e.g. TextBTN[n]) now works with every
function, which supports Object label.
-
"Master Page::", "Master Layer::" and "Page::"prepositions
now works with every function, which supports Object
label. LoadText("Page
2::TextBTN","kuk...")
-
Functions Hide/Show/Invert and
MoveObject/MoveTo now
works with stopped as well as running video.
-
Predefined functions now supports Object/String/Integer
arrays.
ColW=ObjectWidth(Bitmap[i])
-
Page Exit now works with
RunMBD command.
-
Speed improvements regarding the Image object and
MoveObject/MoveTo command.
-
MMB now installs (and embed) Macromedia Flash Player 7.
-
Pressing Cancel button in
ColorPicker() dialog
sets CBK_SelColor = 0.
- ListBoxParam() function to setup some
of ListBox properties in a runtime (like a Background and
Text color, enable/disable Drag&Drop, etc.).
-
ColorPicker() function with
CBK_SelColor to selecting and
storing colors.
-
Added Drag&Drop event tab to the ListBox script
dialog.
-
Possibility to change the colors of a Menu Item button
style (in a design time).
-
Run command now
returns the return values from the running applications
(of course if return codes were implemented in these
applications). The return codes are displayed in
CBK_ReturnVal.
CHANGES:
-
Predefined functions are no longer case sensitive. You can
type " objectwidth() " or "
ObJecTWidth() " and it will be
automatically converted to
ObjectWidth().
-
Function ListBoxAddItem
no
longer supports RANDOMIZE parameter. Use
new
ListBoxSort("object","
RANDOMIZE
")
function instead
of previous ListBoxAddItem
with RANDOMIZE
parameter
.
-
Predefined
functions
ScreenWidth
and
ScreenHeight
are no longer filled after the
publication start-up. If you want to obtain the actual
screen width/height size, use the new
ScreenWidth() and
ScreenHeight() functions.
All older scripts that use the old
syntax must be updated!
-
MXCOL
and
MXROW Matrix
variables are no longer filled after the publication
start-up. They are filled only if a Matrix object is
used.
-
MouseDown/MouseUp
events are now performed only above parental objects.
If you, for example, click and hold the mouse button above
an active object (e.g. button), then you move
mouse over another active object and release the
mouse button above it, the MouseUp event of the second
(target) mouse will not be called.
-
String variable used as the first parameter of
the LoadText function will no longer load the
contents of a second LoadText parameter. The variable used
as a first parameter of LoadText can be now used as a
name pointer to an object. This will allow you to
dynamically replace the text in a series of text
objects or buttons.
- String Arrays
are finally unified (we hope)! All older scipts should work as previously, but it would
be safer
to check and fix them to match their syntax unified. Everywhere you
need to use arrays use this syntax:
Numeric arrays:
NumVar[n]
String Arrays:
StrVar$[n]
Object Arrays:
TextBTN[n]
- TRUE/FALSE
are now keywords (automatically colored and converted to uppercase format).
- StrToFile
predefined function now supports 1/0 or TRUE/FALSE in Append/Linefeed
parameters StrToFile(filename$,string$,1,0)
- <Temp>
now returns path to Windows temp directory and <Embedded>
returns path to MMB temp directory.
- SongListSave
by default save internal SongList <List>
(you no longer need to declare it in first parameter).
- SearchForSong is
renamed to
SearchForFiles. All
older scripts are automatically updated to this new name.
-
MMB now insert blank lines
between the
If..Else..End
statement, when you type
"If" into the script window.
-
When you type a function to
the script window and the function is auto-completed, then
cursor now remains inside the parenthesis or
quotes.
-
ViewJPG
function now support loading the BMP
files and is renamed to
ViewImage
;)
-
Numbers and times in ListBox can now be disabled (in
designer as well as in runtime by script).
-
Improved fast clicking detection in hotspot object.
-
SongListTime ,
CBK_Total, CBK_Time, CBK_VTotal,
CBK_VTime now returns their values in hh:mm:ss
format.
-
Added "Search for ID tags" option to the ListBox
properties. This option is useful in cases when a
non-audio content of the
<List> is loaded.
Disabling this option can significantly increase the speed
of loading.
-
Better rescaling algorithm is now used
in
ViewImage
function.
- Improved ListBoxAddItem
parameters:
Example:
str$=
'item 4#item 5#item 6#'
sep$=CHR(35)
param$=str$+','+sep$
** previously
only this worked...
ListBoxAddItem("ListBox1","str$,#")
** but
now you can use also this..
ListBoxAddItem("ListBox1","str$,sep$")
** or
this
ListBoxAddItem("ListBox1","param$")
FIXES:
-
In cooperation
with Bokzy, we found a true reason of occasional crashing in MMB designer.
The reason of this issue are some Delphi plugins. The good news is that it
can be fixed, however, the bad news is that it will require a rebuild of
most of all Delphi plugins. And as you may know or not, some of the plugins
are no longer developed by their authors, developers disappeared and
the source codes of these plugins are not available too. In short, some
of the plugins cannot be fixed and they may still crash the MMB designer.
Bokzy (as
the author of Delphi SDK fix) will probably release (in a near future;) an improved
Delphi SDK with description how to fix the current Delphi plugins.
- We also found (in cooperation with mni)
a solution to another serious issue reported by some Win98/ME users. Some
of them reports no sound or crashes with Flash, Video, Embedded or external applications
or a general problems with internal MMB audio when running multiple instances of MMB applications
at a time. Believe or not, the right reason of this issue are old sound card
drivers! For more information about this issue and how to fix it check
FAQ chapter in MMB Help.
- Fixed a serious memory leak if
ObjectWidth was used with Text object, or looping ScreenWidth/Height/Colors
and some other functions. If your project crashes from time to time after
and without any visible reason, this memory leak was
the most probably cause of these crashes :)
- Fixed another potentially dangerous
place in MMB code, which was cause of many strange and non-reproducible
crashes and behaviors. They could happen in cases if your application jumps
between mbd projects (via RunMBD) or between pages, and at the same
time it runs some background scripts in loops (both finite or infinite).
- Each change of an mbd
project should invoke the "project is changed" event and
then mbd file should not be closed without Save
request.
-
Right click menu (Undo,
Copy, Paste,...) in script editor is now back.
-
Fixed Alpha button
preview in the Alpha button load dialog.
-
Fixed bug
in
Run
command,
which prevent correct parsing of the program
parameter.
-
EditBox
variables are now correctly refreshed when
they are filled
via
LoadText
or
DisplayValue
functions.
-
DisplayValue
function
can now fill the EditBox with a numeric value (not only
Text object as previously).
-
ObjectWidth /
ObjectHeight now returns the
correct numbers for Video object.
-
Fixed a
long time reported, but never found, the load bitmap
crash..uff..it was really tremendous ;)
-
Fixed some CBK audio related problems.
-
Fixed a ListBox destroy problem after
RunMBD use.
-
Fixed a ListBox numbering problem. Sometimes happened,
that the 10th item in the ListBox was numbered as 1.
-
Fixed crash when trying to run an non-mbd file from the
command line as a parameter of compiled MMB
application.
-
Fixed a refresh problem in a Dimension tool.
-
Fixed
CBK_Total
a CBK_TotalSec for continuos CD
playback.
-
CBK text
objects now work correctly if they are placed on
Master Top page or Master Layer.
-
CD stop
should now work correctly with the audio CBK related
variables.
-
Fixed scroll bars in designer.
-
Fixed some memory leaks in Flash and Text object;)
-
Fixed a problem that cause 1+1=1 ;)
-
Fixed bug in PlaySound and MIDIPlay that cause playing
midi files in loop when the LOOP parameter was not
turned ON.
-
Fixed conflict between Matrix object and GetArrayItem
function.
- Fixed bug in OpenFile command
that prevents to open OpenFile dialog with a predefined path.
- Fixed bug in EditText object,
that prevent to use array variables in the numerical output variable.
- Fixed bug in "Project Settings",
that cause leaving an empty space at bottom of screen (the same size as
taskbar).
- Fixed bug that
prevents to replace MMB icon with custom one if project is compiled with
NoFMOD player.
- Fixed an issue
in PlugiRun, which causes reloading plugin into memory every time PluginRun
has been used. This fix also significantly speed up the PluginRun.
- Speed optimization
for non-overlapped objects. This is noticeable if the Flash, GIF, Dynamic FX or shadows
are used in the same project window and they are not overlapped.
- Fixed Clipboard
GET/SEND on Win2k/XP systems.
- Fixed some
double-click highlight problems in Script wizard (Win98/ME related)
- Fixed [Tab]
jumping over the EditBoxes. EditBox no longer remains highlighted when you
select an EditBox by TAB and then you click into another EditBox by mouse.
- Project window
can now be moved out of the visible area of the screen even with "Full
Screen Background" option enabled.
- EditBox now
doesn't allow variables/arrays with incomplete brackets..like this one:
myTrickyString$1234]
- Fixed bug in
<Embedded> macro. It finally returns path
to MMB temp folder (<Temp>+\MMBPLayer)
- Fixed bug with
saving/loading mbd project from 4.9.5 to 4.8 format and then back to 4.9.5.
- Fixed bug in
"Compress&Export" which producing unreadable files.
- Again (and
we hope for the last time ;) fixed a ListBox numbering problem. Sometimes happened,
that the 10th item in the ListBox has been numbered as 1.
- Fixed CBK_Volume
alignment.
- Fixed some
Video mask problems.
- Fixed bug in
ListBox and StrFromFile which fails on the first row if the rows starts
with numbers.
- BackgroundPlay
now works with AudioFX object.
- Pressing F1
no longer trying to start Windows Help for given project.
- SongListEdit
can now be used in project compiled with NoFMOD player.
- Fixed refresh
of Group objects placed at Master Page and Master Top Layer
- Numeric array
can now be used in CHAR function:
test[1]=10
i=1
c$=CHAR(test[i])
-
Fixed IsMinimized function.
-
Fixed MoveTo command (stop working when Type of movement
was not entered).
-
Fixed several String array problems.
-
Fixed "Allow only one instance in Designer" bug.
-
Fixed bug with Image scrollbars (when Image object is
moved).
-
Fixed bug with <Embedded>
macro and plugins.
-
Fixed some next syntax highlighting issues.
- Fixed AudioOpen vs.
"Buffer is too small..." warning. Buffer is now increased
from 4 to 16kb ;)
-
Fixed memory leak in Designer when Custom Shape was used.
-
Fixed LoadText
trimming.
-
Fixed artist and song title problem with '&'
character.
-
ListBox now insert numbers for all items (not only for
audio files as previously). This can be disabled over
ListBox properties dialog or
ListBoxParam function.
-
Fixed DisplayValue bug
that cause wrong text alignment.
-
Fixed a problem in Flash player "live" installation
that cause non-working flash until application restart.
-
Fixed FMODconfig
initialization bug that prevents to disable FMOD on some
Win9x/ME systems.
-
Fixed some syntax highlighting glitches.
-
Fixed a problem in
GetArrayItem that
prevents to use space and comma as delimiter. Now you can
use hexadecimal codes of the given characters (e.g.
GetArrayNum(test$,'0x20')
where 0x20 means 'space' character). For more hexa codes
check the ASCII character table (for example here
http://www.asciitable.com/).
-
GetArrayNum and
GetArrayItem now works with the
string arrays:
x = 2
array$[x] = '1#2#'
number$ =
GetArrayItem(array[x]$,#,2)
LoadText("TextBTN","number$")
-
Fixed bug that prevents to group the ListBox objects.
-
Fixed bug in
ListBoxDeleteItem that
prevents to delete items from ListBox.
-
Fixed some ListBox problems when ListBox is resized.
-
SongListSave now
correctly save internal list
<List> (e.g.
SongListSave("<
List>",""))
-
Fixed a bug that prevents to move Line object.
-
Fixed "Go to next page" option in Video object properties.
-
Fixed "Can't find plugin..." error message if plugin was
loaded from an external directory (outside
the MMB\Plugin folder).
-
Fixed bug in "Allow only one instance" option, that
prevents to run multiple different MMB exe's.
-
Fixed a problem with disappearing mouse cursor after
ReplaceImage command.
-
Empty string used in
LoadText function
again clear the Object caption or String variable
contents.
-
Decimal separator is no longer dependent on a Regional and
Language Settings.
-
StrToFile now supports <>
macros (<Temp>,
<SrcDir>, ...)
-
Fixed a bug in FMOD file type detection that cause
a MMB to crash in some very special cases (loading
non-standard MP3 files).
-
Scrollbars in Image object no longer remains visible, when
the Image object is hidden (via Image object properties).
-
Fixed rotation algorithm to give much more accurate
results.
-
Fixed a bug in StrDel function.
- Fixed Text object Alignment if the Antialias option is
enabled.
-
CBK_Month and
CBK_Day now returns their values
according the "Regional and Language Options".
-
Fixed Edit box refresh.
-
Video object cannot be run in full-screen mode from
the first page of your publication by Page Start
script. It can be run from the second page, but not from
the first.
-
Fixed FullScreen toggling via the Script object with the
assigned shortcut.
-
Fixed a bug in
BrowseForFolder
function (opening the multiple instances of the
BrowseForFolder dialog).
-
Fixed bug in a
ListBoxDeleteItem
function.
-
Fixed a problem with WMA/ASF playback (right after
the MP3/OGG playback).
-
Fixed some script highlight issues.
-
Fixed a bug with reseting UI.
-
Fixed a Copy/Cut bug in the Script right clik menu.
-
Fixed an object width bug when the "Default text" is
deleted from the Input text.
-
Fixed "Allow only one
instance" bug on w2k computers.
-
Fixed bug that prevents to
change the Video object Width/Height after video
load.
-
Fixed crash when ProcFreq()
predefined function was used.
-
Fixed a problem when < SrcDir
> and < SrcDrive >
macros were used in path to Video in Video properties
dialog.
-
Fixed a MMB freeze when a predefined function was used in
If ...
Then
statement.
-
MVM file
extension in VideoLoad dialog is now corrected to WMV file
extension ;)
-
Fixed bug in
StrToFile
predefined
function that prevents parsing String$ parameter and
adding empty lines to the output file if the
append/linefeed parameters are TRUE.
-
<> macros (e.g. <
SrcDir
>) can now be assigned to the string
variables without the need to use quotes...for
example test$=<
SrcDir >
-
Double click on a function now
pass all parameters to the Script wizard. Previously,
some parameters were not passed e.g.
ScriptTimer("TimerA=MoveTrackSlider1","
50 ")
-
"Fill With Color" in Bitmap
properties dialog now works correctly when "Keep Aspect
Ratio" option is used.
KNOWN PROBLEMS:
-
ASF/WMA file formats don't work with CBK_MP3EOF.
Unfortunately, these MS file formats don't support the EOF
detection.
However, there is a way (even a little tricky) how to detect end
of file. Check this
example file.
KNOWN LIMITATIONS:
Q: Some objects placed over the
"windowed" objects (like a HTML, ListBox, Binding, Video or
Flash) does have an ugly white rectangle around them.
A:
It's because MMB4.9 allows only the rectangle objects to be
placed over these special objects. Then if you place for
example a circle over the HTML, it will still appear as a
circle inside the ugly white rectangle. We will try to do
something with this limitation in any next version of
MMB.
Q: WMA, ASF audio formats don't fill the CBK
variables.
A:
At the moment only the MP3 and OGG files have the complete
support for CBK variables.