AutoPlay Media Studio教程

 公司的軟件要發佈,要我做一個光盤自啓動的,所以在看這個,收下來做個筆記。

 

1.首先要準備好素材:背景圖片、按鈕的移動聲音、按鈕的點擊聲音、裝飾圖案和啓動聲音等。首先新建一個Blank Project,在右側的Properties面板中將style項設爲Image,(Properties面板是整個Project的屬性)然後在下放的Image選項中選擇你的背景圖片的位置。
2.第二步要加入標題,選中菜單欄的Insert—Label加入標題,也可以選擇快捷按鈕中的 A 的那個按鈕或按Ctrl+2。在Settings標籤下的Object中的Text中輸入要顯示的標籤,Select Font可以設置字體字號。Alignment中可設置對齊方式。State Colors中設置正常情況下的顏色和移動到上面的高亮顏色還有點擊時的顏色,本人在這裏將他們全部設爲白色,可在Normal中設爲白色,然後點擊Match Normal即可。
3.第三步添加按鈕,在左邊的Gallery面板中選擇第一個“插入按鈕”的圖標即可顯示軟件自帶的素材庫,在其中選擇合適的按鈕拖拽到Project上。雙擊按鈕就可打開其屬性面板Button Properties,也可以直接在右側的Properties面板中修改按鈕的參數。本人建議使用雙擊後的Button Properties面板,在Settings—Object—Text中輸入要顯示在按鈕上的文字,其它選項與標題設置的方法一樣。在Attributes—Properties—Object中可以設置按鈕的名稱和顯示效果,Postition可以設置按鈕的位置,Feedback中設置鼠標移動到按鈕上的指針和顯示文字,Sounds—Highlight是鼠標移動到按鈕上的聲音,Click是鼠標點擊的聲音。Action標籤是最重要的,也就是點擊按鈕後運行程序的Action語言。分爲On Click、On Enter、On Leave三種情況,我們主要用到On Click、On Leave。在On Click下點擊Add Action,會顯示New Action Wizard的對話框,在Step 1 -Choose a的下拉菜單中選擇一種Action。例如我們要做一個軟件的安裝Action,那麼我們選擇File選項,在Step 2 - Choose an下的列表中會出現所有的File Action,我們選擇File.Run,它是運行一個文件的Action,在列表的下面會出現一個蘭色的File.Run字體,點擊它可查看幫助。然後點擊下一步,在Source中選擇你要連接的程序或資源,其他選項可忽略,點擊完成。當我們要做的程序需要拷貝文件到安裝文件夾來註冊時,例如WinRAR3.2、Flashget1.4,我們要利用到On Leave這個標籤,選擇Add Action,Action類型選擇Shell,然後選擇Shell.GetFolder命令,這個命令我是要定位Progarm file文件夾,因爲WinRAR文件夾是在Progarm file文件夾下,我們無法直接拷貝到WinRAR文件夾下。單擊下一步在Type中選擇SHF_PROGRAMFILES後完成。這時下面的命令行中會出現result = Shell.GetFolder(SHF_PROGRAMFILES);我們將result修改爲DestFolder。然後再添加一個File.Copy的Action(方法相信大家都知道了),將Source的位置選擇爲我們要拷貝的文件,Destination設爲DestFolder.."//WinRAR//"點擊完成(要注意引號)。這樣我們就可以完成文件的拷貝了。
4.下面我們添加那個窗口,用Fireworks做出那個窗口然後點擊Insert—Image或使用快捷按鈕或Ctrl+4來插入它。然後用Object—Lock—Selection把它瑣定,這樣再調節窗口裏的圖片時就不會碰到它了。再用同樣的命令插入一個適當圖片作窗口裏的圖片。
5.最後用Insert—Hotspot插入一段文字,(Hotspot是用來插入段落的,而Label是插入標題的)將其調整到適當的位置。選擇Project—windos settings中的Width和Height調節寬度和高度。選擇Project—Audio Settings中的Add來添加一個啓動聲音文件梢園湊兆約旱南埠媒瀋櫛坊蛘卟謊凡シ擰H綣閿兇齪玫鈉範箍梢訮roject—Startup Movie來設一個開場動畫(Flash也可以啊!)最後用F5預覽一下就可以用F7生成了,注意生成時在Build & Publish Target下選Hard Drive Folder,然後選擇你要製作的光盤文件夾就行了。
對了,你也可以直接打開軟件自帶的摸板看看它的Action是怎麼編寫的,總之英語好的人佔便宜了,像我這樣的看幫助時是連猜帶蒙的,如果我上面有什麼說的不對請指正。其實這個軟件的Action很強大,可以做出很多不同用途的啓動界面,有興趣的可以看看他的幫助,我用的這些也是從幫助中學來得,其他的Action我還沒試過,相信大家的想象力比我豐富,肯定能做出更好的。祝你成功!哎,打了好半天,該歇會兒了!
如果不喜歡軟件自帶的按鈕可以用Photoshop做好按鈕的圖片(起碼要有兩種狀態:正常;按下;)保存成.png文件(因爲png文件支持透明背景),這樣在AutoPlay Media Studio Professional中自帶的按鈕編輯工具中就可以做出個性化的按鈕了,當然也可以用Photoshop做出一張帶有選項的背景,通過AutoPlay Media Studio Professional的熱點來編輯也可以達到個性化選擇菜單的效果。
文章中少了Browse CD和Exit CD的做法,另外在Easyboot專題看到有人問片頭動畫的問題,就一起說說。如若有誤,請大家指正!
1、加入片頭動畫的方法是選擇project—startup movie,然後在彈出的對話框中將play startup moive選中。在startup movie裏選擇片頭動畫是Video格式,還是flash格式。在filename中選擇動畫的位置。在Window Size中選擇窗口是否全屏,或者是自定義大小。Media Size是選擇媒體的大小,Fit to Window是適合窗口大小。style是一些風格設置。
見圖1
2、Browse CD是瀏覽光盤內容按鈕,方法是在Actions中點擊add action,選擇File中的ExploreFolder命令。然後單擊“下一步”,通過選擇DefaultFolder來設置你的默認瀏覽目錄。
我的命令如下:
File.ExploreFolder("AutoPlay", SW_SHOWNORMAL);
3、Exit CD是退出按鈕,方法是在Action中點擊add action,選擇Application中的Application.Exit()即可。
子界面跳轉功能:
見圖2
播放按鈕代碼如下:
Audio.Load(CHANNEL_USER1, "AutoPlay//Audio//The Woods (short).ogg", false, false);
Audio.Play(CHANNEL_USER1);
"AutoPlay//Audio//The Woods (short).ogg", 是你想要播放的文件名.代碼含義就是先找到要播放的文件,然後播放.
暫停按鈕代碼如下:
Audio.Stop(CHANNEL_USER1);


AutoPlay Media Studio Professional v5.0的部分Action解釋
以下是關於Application的部分Actions(未完)
(1).Application.Exit
關閉窗口
例:關閉自動運行界面
Application.Exit();
(3).Application.GetLastError
返回最終錯誤代碼(單獨使用無實際效果,與Dialog.Message聯合使用)
例:返回最終錯誤代碼付給nError變量
nError = Application.GetLastError();
可以與if判斷和Dialog.Message命令連用:
打印這個AutoPlay/Docs/MyFile.pdf文件;並檢查Action執行是否有錯誤,將錯誤代碼返回給error變量,如果錯誤代碼不等於0(也就是有錯誤)即用一個對話框顯示出來.
File.Print("AutoPlay//Docs//MyFile.pdf");
error = Application.GetLastError();
if (error ~= 0) then
Dialog.Message("Error", _tblErrorMessages[error], MB_OK, MB_ICONEXCLAMATION);
end
錯誤代碼範圍:
(9999) 未知錯誤代碼
(1000-1099) 文件相關錯誤
(1100-1199) 命令屬性相關錯誤
(1200-1299) 聲音相關錯誤
(1300-1399) 頁相關錯誤
(1400-1499) 狀態對話框相關錯誤
(1500-1599) INI 文件相關錯誤
(1600-1699) 註冊相關錯誤
(1700-1799) ListBox相關錯誤
(1800-1899) 系統相關錯誤
(1900-1999) 文本文件相關錯誤
(2000-2099) Window相關錯誤
(2100-2199) 驅動器相關錯誤
(2200-2299) 文件夾Action相關錯誤
(2300-2399) Shell Action相關錯誤
(2400-2499) DLL相關錯誤
(2500-2599) HTTP相關錯誤
(2600-2699) 壓縮文件相關錯誤
(2700-2799) 提示框相關錯誤
(2800-2899) Application相關錯誤
(2900-2999) 內部功能相關錯誤
(3000-3099) 字符串相關錯誤
(7).Application.LoadScript
讀取lua腳本文件
例:讀取AutoPlay/Scripts/AddedFunctionality.lua腳本
Application.LoadScript("AutoPlay//Scripts//AddedFunctionality.lua");
(9).Application.Minimize
最小化界面
例:最小化界面
Application.Minimize();
(10).Application.Restore
還原界面
例:還原界面
Application.Restore();
(11).Application.RunScriptFile
運行lua腳本
例:運行MyScript.lua腳本文件
Application.RunScriptFile(_SourceFolder.."//MyScript.lua");
============================================================

以下是所有關於File.的Action:
1、File.Copy
拷貝目標文件到指定目錄
例:File.Copy("C://MyDir//*.*", "C://DestDir//", true, true, false, true, nil);
2、File.Delete
刪除目標文件
例:File.Delete("C://MyDir//MyFile.ext", false, false, false, nil);
3、File.DeleteOnReboot
在下次啓動時刪除目標文件
例:File.DeleteOnReboot("C://MyDir//MyFile.ext");
4、File.DoesExist
判斷目標文件存在與否,存在獲取“真”值,反之獲取“假”值。(單獨使用無效果,與Dialog.Message等聯合使用)
例:are_ya_there = File.DoesExist(_WindowsFolder.."//system.ini");
5、File.ExploreFolder
文件夾瀏覽
例:File.ExploreFolder("C://Documents and Settings", SW_MAXIMIZED);
6、File.Find
在本地硬盤上查找文件(單獨使用無效果,與Dialog.Message等聯合使用)
例:found = File.Find( Shell.GetFolder(SHF_MYDOCUMENTS), true, false, "*.pdf");
if (found) then
Dialog.Message("Found one!", "The first PDF file found was:" .. found[1]);
7、File.GetAttributes
獲取目標文件系統屬性(單獨使用無效果,要與其他命令聯合使用)
例:attrib = File.GetAttributes( _TempFolder .. "//MyTempFile.tmp" );
bReadOnly = attrib.ReadOnly;
strCreationDate = attrib.CreationDate;
8、File.GetCRC
對目標文件獲取一個CRC值(用於下載後檢查文件,單獨使用無效果,與File.Run和Dialog.Message聯合使用)
例:crc_value = File.GetCRC(_TempFolder.."//setup.exe");
if crc_value == 824907888 then
File.Run(_TempFolder.."//setup.exe", "", "", SW_SHOWNORMAL, true);
else
result = Dialog.Message("Error", "The downloaded file is incomplete. Please try downloading again.", MB_OK, MB_ICONSTOP, MB_DEFBUTTON1);
9、File.GetDefaultViewer
獲取目標文件類型的打開方式(單獨使用無效果,要與其他命令聯合使用。本例爲獲取jpg的默認打開方式)
例:result = File.GetDefaultViewer(".jpg");
10、File.GetShortName
對長文件名文件獲取一個DOS 8.3文件名(單獨使用無效果,個人認爲要與別的命令聯合使用)
例:short_version = File.GetShortName ("C://Program Files//AutoPlay Media Studio 5.0//ams50.exe");
結果:C:/PROGRA~1/AUTOPL~1/ams50.exe
11、File.GetSize
獲取目標文件大小(單獨使用無效果,要與其他命令聯合使用)
例:file_size = File.GetSize(_TempFolder .. "//setup.exe");
12、File.GetVersionInfo
獲取目標文件的版本信息(單獨使用無效果,要與其他命令聯合使用,將獲取的信息付給其他函數)
例:version_info = File.GetVersionInfo( _ProgramFilesFolder .. "//Doopernator//Doopernator.exe");
13、File.Install
向系統安裝DLL文件(可與Dialog.Message、Application.GetLastError聯合使用,下例就是將成功安裝付給函數且用Application.GetLastError獲取失敗錯誤,然後判斷安裝成功與否,如果失敗,用Dialog.Messag輸出錯誤信息)
例:success = File.Install("AutoPlay//Docs//cooltoy.dll", _SystemFolder.."//cooltoy.dll", FILE_INSTALL_ALWAYS );
error = Application.GetLastError();
if success == false then
Dialog.Message("Error", _tblErrorMessages[error], MB_OK, MB_ICONEXCLAMATION);
14、File.Move
移動目標文件到指定目錄(注:_TempFolder爲temp文件夾、_ProgramFilesFolder ..爲Program Files文件夾、_WindowsFolder..爲系統文件夾)
例:File.Move("AutoPlay//Docs//*.txt", _TempFolder .. "//Text Files", false);
15、File.MoveOnReboot
在下次啓動時移動文件到指定目錄
例:File.MoveOnReboot(_TempFolder .. "//setup.exe", "C://setup.exe");
16、File.Open
打開文檔文件(如果指向exe文件,默認會將exe文件拷到AutoPlay//Docs//內再執行)如要播放視頻文件就要用此命令,File.Run 無法實現。
例:File.Open("AutoPlay//Docs//ad4.92.exe", "", SW_SHOWNORMAL);
17、File.OpenEmail
發送郵件(還可以加標題)
例:File.OpenEmail("[url=mailto:[email protected]][email protected][/url]");
File.OpenEmail("[url=mailto:[email protected]][email protected][/url]?subject=Good luck", SW_SHOWNORMAL);
18、File.OpenURL
用默認瀏覽器打開網頁
例:File.OpenURL("www.baidu.com", SW_MAXIMIZE);
19、File.Print
打印文檔
例:File.Print("AutoPlay//Docs//1.txt");
20、File.Rename
重命名指定文件文件名(可以用來做批處理文件)
例:File.Rename("C://1.txt", "C://2.exe");
21、File.Run
運行文件(直接在原目錄中執行,用來做啓動界面裏的軟件安裝)
例:File.Run("AutoPlay//Docs//ezb456cn-s.exe", "", "", SW_SHOWNORMAL, false);
22、File.RunOnReboot
在下次啓動時運行目標文件
例:File.RunOnReboot(_TempFolder .. "//setup.exe", "/W");
23、File.SetAttributes
設置目標文件的系統屬性(首先可用File.GetAttributes獲取屬性,然後修改屬性,亦可直接建立一個空屬性,用attrib = {};替換第一句。)
一定要注意 = 前用什麼函數(本例爲attrib)後面的屬性前也要一致(attrib.ReadOnly、attrib.Hidden),最後設置屬性時也要用相同的函數("C://COMMAND.COM", attrib)
例:attrib = File.GetAttributes("C://COMMAND.COM");
attrib.ReadOnly = true;
attrib.Hidden = true;
File.SetAttributes("C://COMMAND.COM", attrib);
========================================================

以下是關於Dialog.部分的Action
1、Dialog.FileBrowse
彈出查找文件對話框
例:result = Dialog.FileBrowse(true, "Locate File", _DesktopFolder, "All Files (*.*)|*.*|", "", "dat", false, false);
2、Dialog.FolderBrowse
彈出瀏覽文件夾對話框(只能看到文件夾一級,無法看到文件夾中的內容)
例:result = Dialog.FolderBrowse("Please select a folder:", "AutoPlay//Docs");
3、Dialog.Input
彈出輸入對話框
例:result = Dialog.Input("Enter Data", "Your answer:", "", MB_ICONQUESTION);
4、Dialog.MaskedInput
按照指定格式輸入數據((###) ###-####爲指定格式,2045559923爲默認數據)
例:result = Dialog.MaskedInput("Enter Data", "Your phone number:", "(###) ###-####", "2045559923", MB_ICONQUESTION, " ");
5、Dialog.Message
彈出警告信息
例:Dialog.Message("Failure", "The file on your system is not valid.");
6、Dialog.PasswordInput
輸入密碼對話框(輸入內容爲*號,與Application.Exit()聯合使用可完成密碼確認,下例是將valid作爲密碼並付給real_password,利用Dialog.PasswordInput輸入一個密碼付給user_password,如果等於real_password則進入界面,否則利用Application.Exit()退出該界面)
特別注意:(以下是一個if的判斷語句的標準格式,中間一行的xxxx;是滿足判斷後執行的命令,由於是命令所以要帶“;”號。本例的前兩句是付值語句,是將valid付給real_password,將用戶輸入的內容付給user_password)
if xxxx ~= xxxx then
xxxx;
end
例:real_password = "valid";
user_password = Dialog.PasswordInput("Password", "Please enter the password: ", MB_ICONQUESTION);
if real_password ~= user_password then
Application.Exit();
end
7、Dialog.SplashFlash
顯示一個Flash提示框(下例中的10是顯示持續的時間)
例:Dialog.SplashFlash("AutoPlay//Flash//Intro.swf", 10, false);
8、Dialog.SplashImage
顯示一個圖片(下例中的10是顯示持續的時間)
例:Dialog.SplashImage("AutoPlay//Images//d370.jpg", 10, true);
9、Dialog.SplashVideo
顯示一個視頻(下例中的10是顯示持續的時間,對mpg格式支持良好,本人試了試avi,出現了跳楨現象?)
例:Dialog.SplashVideo("AutoPlay//Videos//Magnolia.mpg", 10, true);
10、Dialog.TimedMessage
顯示一個等待提示框(類似軟件安裝時彈出的提示框,下例中的2000爲持續時間)
例:Dialog.TimedMessage("Please Wait...", "Working...", 2000, MB_ICONINformATION);
其實Dialog.命令大部分都是與其他命令配合使用時才能發揮最佳效果,例如Dialog.Input、Dialog.SplashVideo、Dialog.TimedMessage等都只能提供一個提示框或其他類似提示,如果不與其他命令配合,輸入數據和提示視頻、動畫以及等待信息等等就都沒有什麼實際意義了。
================================================================

以下所有關於Folder.的Action:
Folder.Create
建立文件夾
例:Folder.Create("C://Stored");
Folder.Delete
刪除文件夾(空)
例:Folder.Delete("C://Stored");
Folder.DeleteTree
刪除文件夾及其內容
例:Folder.DeleteTree("C://Stored", nil);
Folder.DoesExist
檢查文件夾是否存在並返回“真/假”值,若存在返回“真”,不存在返回“假”。(單獨使用無效果,與Dialog.Message等聯合使用)
例:檢查ProgramFiles文件夾是否存在,並返回提示.
does_exist = Folder.DoesExist(_ProgramFilesFolder);
if does_exist then
Dialog.Message("Notice", "Yes, the folder does exist on your system.", MB_OK, MB_ICONINformATION);
else
Dialog.Message("Notice", "No, the folder does not exist on your system.", MB_OK, MB_ICONINformATION);
end
Folder.Find
在本地系統上查找文件夾
例:found = Folder.Find( Shell.GetFolder(SHF_MYDOCUMENTS),"Plant Data", false);
if (found) then
Dialog.Message("Found one!", "The first folder found was:" .. found[1]);
end
Folder.GetCurrent
返回當前目錄的值賦給函數
例:current_dir = Folder.GetCurrent( );
Folder.Rename
重命名文件夾
例:Folder.Rename("C://Stored", "C://OldStored"); 注:Stored爲舊文件夾名,OldStored爲新文件夾名。
Folder.SetCurrent
設置當前目錄
例:Folder.SetCurrent("AutoPlay//Docs");
=====================================================================

以下是關於Paragraph的部分Actions(未完)
Paragraph.SetVisible
設置段落是否可見,Ture值爲可見,False爲不可見。可用於鼠標移入按鈕時顯示段落文字,移出時段落消失的交互效果。
例:在按鈕Action中的On Enter標籤中如下設置,爲鼠標移入按鈕時顯示段落文字.
Paragraph.SetVisible("Paragraph1", true);
在按鈕Action中的On Leave標籤中如下設置,爲鼠標移出時段落消失.
Paragraph.SetVisible("Paragraph1", false);
======================================================================
以下是關於Shell部分的相關Actions
1、Shell.CreateShortcut
建立快捷方式
例:在桌面上建立一個指向C:/Program Files/MyApp/app.exe的快捷方式,使用C://Program Files//MyApp//app.ico的圖標.
Shell.CreateShortcut(_DesktopFolder, "My Shortcut", "C://Program Files//MyApp//app.exe", "", "", "C://Program Files//MyApp//myicon.ico", 0, SW_MAXIMIZE);
2、Shell.DeleteShortcut
刪除快捷方式
例:刪除剛纔建立的快捷方式
Shell.DeleteShortcut(_DesktopFolder, "My Shortcut");
3、Shell.Execute
執行操作
例:將My Documents目錄付給My_Docs變量;然後編輯My Documents中的CompanyInfo.htm網頁文件
MyDocs = Shell.GetFolder(SHF_MYDOCUMENTS);
Shell.Execute(MyDocs .. "//CompanyInfo.htm", "edit", "", "", SW_SHOWNORMAL);
4、Shell.GetFolder
設置目錄變量
例:將My Documents目錄付給My_Docs變量
My_Docs = Shell.GetFolder(SHF_MYDOCUMENTS);
=======================================================================
以下是關於zip部分的Actions
1、Zip.Add
添加文件到壓縮文件
例:將AutoPlay/Docs/Prices.txt和Catalog.txt添加到C:/CompanyInformation/Info.zip文件中,將兩個文件先付值給FileTable變量,這樣可以用一個Zip.Add命令添加這兩個文件.
FileTable = {_SourceFolder.."//AutoPlay//Docs//Prices.txt", _SourceFolder.."//AutoPlay//Docs//Catalog.txt"};
Zip.Add("C://CompanyInformation//Info.zip", FileTable, false, "", 5, nil);
2、Zip.Extract
解壓縮文件
例:解壓AutoPlay/Docs/graphics.zip中的所有文件到C:/Graphics目錄中
Zip.Extract("AutoPlay//Docs//graphics.zip", {"*.*"}, "C://Graphics", true, true, "", 3, nil);
3、Zip.GetContents
返回壓縮文件內容信息(單獨使用無實際效果,得到返回值)
例:得到AutoPlay/Docs/Info.zip內容列表並付值到zip_contents變量中.
zip_contents = Zip.GetContents("AutoPlay//Docs//Info.zip", true);

 


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章