關(guān)鍵字:Dreamweaver 擴(kuò)展 插件 開發(fā)
對(duì)于想進(jìn)行Dreamweaver擴(kuò)展(插件)開發(fā)的用戶來說,一般需要有這樣的前提知識(shí): 1,需要了解到Dreamweaver擴(kuò)展(插件)制作的基本步驟,即了解擴(kuò)展文件(.mxp)在打包前的文件結(jié)構(gòu)及文件內(nèi)容??蓞⒖础笆褂脭U(kuò)展管理器”幫助文檔(Macromedia擴(kuò)展管理器菜單“幫助”);
2,應(yīng)了解打包前的擴(kuò)展安裝文件(.mxi)的結(jié)構(gòu)及相關(guān)語法應(yīng)用,可參考Dreamweaver擴(kuò)展幫助文檔:Extending Dreamweaver(Dreamweaver菜單“幫助”-“擴(kuò)展Dreamweaver”);
3,擴(kuò)展(插件)的應(yīng)用是方便我們對(duì)Dreamweaver的使用,將特定的功能制作成擴(kuò)展(插件),將大大提高了工作的效率。這也同時(shí)說明插件的開發(fā)就避免不了與Dreamweaver“內(nèi)核”打最直接的交道。如何進(jìn)行,將須了解到Dreamweaver的API(Application Programming Interface 應(yīng)用編程接口),可參考Dreamweaver API Reference文檔(Dreamweaver菜單“幫助”-“Dreamweaver API 參考”)
4,在操作用戶、擴(kuò)展文件、Dreamweaver三者間進(jìn)行交互,則必須對(duì)Javascript有所掌握,否則Dreamweaver擴(kuò)展(插件)開發(fā)無從談起。
好,先來說說Dreamweaver的擴(kuò)展(插件)是什么? 無論是在Dreamweaver中插入圖像、還是添加行為,歸根到底,也就是通過彈出的對(duì)話框進(jìn)行相關(guān)設(shè)置后,將這些信息內(nèi)容插入到頁面文檔中。雖然這是很方便的,但Dreamweaver的設(shè)計(jì)者不可能會(huì)面面俱到,所以還有些功能是不能通過Dreamweaver只要鼠標(biāo)點(diǎn)點(diǎn)就能實(shí)現(xiàn)的。
比如,我需要為網(wǎng)頁添加一個(gè)“加入收藏”的鏈接功能,這在Dreamweaver中就沒有,要進(jìn)行這樣的操作就必須手動(dòng)的來輸入代碼,如:
[Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運(yùn)行]
這是對(duì)一個(gè)超級(jí)鏈接添加的Javascript功能。如果每次都要添加“加入收藏”的鏈接功能,而每次又不可能是同一個(gè)站點(diǎn)時(shí),就只有重復(fù)地輸入、修改該鏈接代碼了。所以,一個(gè)該功能的擴(kuò)展(插件)急需開發(fā)出來。
那么這的擴(kuò)展(插件)文件是什么呢?是一個(gè)mxp文件,只要獲得該文件就可安裝,并在Dreamweaver中使用該插件的功能。
具體擴(kuò)展(插件)的方法:
http://www.dw8.cn/dw8_1/79.asp 當(dāng)然,我這里已經(jīng)提供了這樣的擴(kuò)展(插件)MXP文件下載:
http://www.cnbruce.com/test/dwex/fav.mxp 在安裝了該插件后,就可以在Dreamweaver中使用該功能了(如上圖)。
那么本文這里就來說說這個(gè)提供給Dreamweaver用戶應(yīng)用的MXP文件是如何生成的。 首先要明確的就是源文件和目標(biāo)文件,比如Flash動(dòng)畫,大家最終看到的是swf文件,而制作它的源文件則是fla文件。
所以最終的擴(kuò)展文件mxp為目標(biāo)文件,而生成它的主要源文件即是mxi文件,為什么說是主要呢,因?yàn)樵跀U(kuò)展打包之前除了擴(kuò)展安裝文件mxi外,還可能有網(wǎng)頁、腳本、圖像等文件,只是最終打包以mxi為準(zhǔn)。
那么一個(gè)mxi文件,其中都需要包括哪些內(nèi)容呢? mxi文件的內(nèi)容具體都應(yīng)該有些什么內(nèi)容,這些內(nèi)容又如何的組織?可以先參看下現(xiàn)成的文件。
打開 Program Files\Macromedia\Extension Manager\Samples\Dreamweaver 文件夾即可看到三個(gè)文件,其中
Blank.mxi文件就是一個(gè)空的很純的MXI文檔,這是一個(gè)XML格式的文件
為了滿足能盡快開發(fā)插件的強(qiáng)烈欲望,這些元素就不逐個(gè)詳細(xì)介紹,就談?wù)勅缟蟜av.mxp的開發(fā),即fav.mxi文件的內(nèi)容,如下:
<macromedia-extension name="加入收藏夾" version="1.0.0" type="object"> <author name="cnbruce" /> <products> <product name="Dreamweaver" version="6" primary="true" /> </products> <description> <![CDATA[這是制作加入收藏夾超級(jí)鏈接的擴(kuò)展]]> </description> <ui-access> <![CDATA[彈出對(duì)話框中進(jìn)行進(jìn)行相關(guān)的設(shè)置]]> </ui-access> <files> <file name="fav.htm" destination="$dreamweaver/configuration/objects/common" /> <file name="fav.gif" destination="$dreamweaver/configuration/objects/common" /> </files> </macromedia-extension>
可以注意到,macromedia-extension之后的各項(xiàng)參數(shù)屬性,是在擴(kuò)展安裝后對(duì)該擴(kuò)展的識(shí)別
比如 name="加入收藏夾" ,version="1.0.0" , type="object" 分別代表“已安裝的擴(kuò)展”名,“版本”和擴(kuò)展的“類型”
而 <author name="cnbruce" /> 則表示“創(chuàng)作者”
同時(shí)<description>與<ui-access>則分別顯示在下方的說明欄中。
那主要的則是
<files>
<file name="fav.htm" destination="$dreamweaver/configuration/objects/common" />
<file name="fav.gif" destination="$dreamweaver/configuration/objects/common" />
</files>
name="fav.htm" 和 name="fav.gif" 分別表示擴(kuò)展的功能文件和安裝后擴(kuò)展的圖標(biāo),圖標(biāo)文件名應(yīng)與擴(kuò)展功能文件名同
destination="$dreamweaver/configuration/objects/common" 則表示這兩個(gè)文件將安裝于該目錄下,在Dreamweaver的體現(xiàn)就是“插入”面板的“常用”類別中。
當(dāng)然,更詳細(xì)的mxi文檔格式介紹,請(qǐng)下載官方PDF文件閱讀:
http://download.macromedia.com/pub/exchange/mxi_file_format.pdf 其實(shí)MXI擴(kuò)展安裝文件,就是定義了擴(kuò)展的一些信息,并選擇擴(kuò)展所需的文件進(jìn)行安裝。
說完了MXI,就該談?wù)勚饕δ芪募?,即MXI中談到的fav.htm了 這個(gè)文件就是擴(kuò)展的主要功能,它是連接操作用戶與Dreamweaver之間的橋梁,擴(kuò)展文件的內(nèi)容應(yīng)根據(jù)功能分析而得。
比如這里是添加“加入收藏”的功能,那么可以肯定每次輸入的收藏網(wǎng)址和收藏名稱都不同,所以提供兩個(gè)表單文本輸入框,在輸入了內(nèi)容后,在Dreamweaver中自動(dòng)生成該段鏈接代碼。
所以,fav.htm的主要內(nèi)容是如下:
[Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運(yùn)行]
有了這個(gè)平臺(tái),怎樣才能使得輸入的內(nèi)容與“加入收藏”的鏈接代碼結(jié)合,并最終顯示在Dreamweaver的文檔中呢?這就不得不說到Javascript和Dreamweaver的API了。
這個(gè)文件就是擴(kuò)展的主要功能,它是連接操作用戶與Dreamweaver之間的橋梁,擴(kuò)展文件的內(nèi)容應(yīng)根據(jù)功能分析而得。
比如這里是添加“加入收藏”的功能,那么可以肯定每次輸入的收藏網(wǎng)址和收藏名稱都不同,所以提供兩個(gè)表單文本輸入框,在輸入了內(nèi)容后,在Dreamweaver中自動(dòng)生成該段鏈接代碼。
所以,fav.htm的主要內(nèi)容是如下:
[Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運(yùn)行]
有了這個(gè)平臺(tái),怎樣才能使得輸入的內(nèi)容與“加入收藏”的鏈接代碼結(jié)合,并最終顯示在Dreamweaver的文檔中呢?這就不得不說到Javascript和Dreamweaver的API了。
比如函數(shù)objectTag()就是插入字符串或代碼至用戶文檔中,并使用return返回值。 This function inserts a string of code into the user’s document. In Dreamweaver MX, returning an empty string, or a null value (also known as "return;"), is a signal to Dreamweaver to do nothing. 那么,可以寫入如下的函數(shù)內(nèi)容:
function objectTag() { var favurl=""; var favtext=""; if (document.favform.favurl.value != ""){ favurl=document.favform.favurl.value; } else {favurl=‘‘; } if (document.favform.favtext.value != ""){ favtext=document.favform.favtext.value; } else {favtext=‘‘; } return (‘<A HREF=\"Javascript:window.external.AddFavorite(\‘‘ + favurl +‘\‘,\‘‘+ favtext +‘\‘)\">加入收藏</A>‘); }
獲得文檔中表單元素favurl和favtext的值,并結(jié)合到“加入收藏”的鏈接代碼中,最終返回文檔顯示。
另外,如果還含有displayHelp()函數(shù),則是指明彈出對(duì)話框中“幫助”按鈕的相應(yīng)功能,比如: function displayHelp(){ dreamweaver.browseDocument("http://www.dw8.cn/"); }
其中dreamweaver.browseDocument即相關(guān)API函數(shù),(open the Hotwired home page in a browser)
此外,如果是擴(kuò)展是彈出窗口式,則在文檔首行聲明: <!DOCTYPE HTML SYSTEM "-//Macromedia//DWExtension layout-engine 5.0//dialog">
其他還有比如:
<!DOCTYPE HTML SYSTEM "-//Macromedia//DWExtension layout-engine5.0//floater">
<!DOCTYPE HTML SYSTEM "-//Macromedia//DWExtension layout-engine5.0//pi">
所以,一個(gè)完整的fav.htm代碼如下 [Ctrl+A 全部選擇 提示:你可先修改部分代碼,再按運(yùn)行]
有了MIX擴(kuò)展安裝文件fav.mxi,還有擴(kuò)展功能文件fav.htm,就剩下擴(kuò)展圖標(biāo)fav.gif了 http://www.cnbruce.com/test/dwex/fav.gif 以上三個(gè)文件保存于同一目錄下,打開Macromedia擴(kuò)展管理器,選擇“將擴(kuò)展打包”,選擇fav.mxi文件進(jìn)行打包,生成提供給用戶使用fav.mxp擴(kuò)展(插件)文件
插件的開發(fā)到此結(jié)束。
小結(jié)DW擴(kuò)展的開發(fā):MXI擴(kuò)展安裝文件定義擴(kuò)展信息并選擇安裝文件和安裝位置,擴(kuò)展功能文件需要在功能分析后使用Javascript及Dreamweaver API相關(guān)知識(shí)來完成,而圖標(biāo)文件名稱與功能文件同即位該擴(kuò)展在Dreamweaver中的圖標(biāo)。