為什么要學(xué)習(xí)jsfl?
作為一個(gè)有些經(jīng)驗(yàn)的FLASH開發(fā)者,想必都會(huì)形成一些自己的開發(fā)習(xí)慣,比如很多人都喜歡把主時(shí)間軸第一層命名為:“AS”,第二層命名為“Label”,類似這樣的勞動(dòng)都是重復(fù)的,我們有辦法可以簡化它們么?答案是肯定的,于是jsfl隆重登場了。
什么是jsfl?
如果說AS是用來在SWF運(yùn)行時(shí)運(yùn)行的腳本,而jsfl則是在Flash編輯環(huán)境下運(yùn)行的腳本。在這里我不想用太多專業(yè)的術(shù)語打擊新手繼續(xù)學(xué)習(xí)的信心,我想先帶大家做一個(gè)非常簡單的實(shí)驗(yàn),實(shí)驗(yàn)環(huán)境:操作系統(tǒng)(Win XP2),F(xiàn)LASH開發(fā)環(huán)境(FLASH 8 簡體中文版)。
- 首先把你的文件后綴名顯示出來:→工具→文件夾選項(xiàng)→查看→把“隱藏已知文件類型的擴(kuò)展名”選項(xiàng)取消。
- 隨便在那里右鍵新建一個(gè)空的TXT文本文件。
- 打開FLASH8,然后新建一個(gè)fla,這時(shí)候你會(huì)看到時(shí)間軸上已經(jīng)自動(dòng)產(chǎn)生一個(gè)圖層“圖層 1”。
- 在FLASH中打開“歷史記錄”面板。
- 然后將時(shí)間軸“圖層 1”改名為“AS”,這時(shí)觀察“歷史記錄”面板,你會(huì)發(fā)現(xiàn)多了一條“層命名”。
- 然后右鍵點(diǎn)擊“層命名”,在彈出菜單中選擇“復(fù)制步驟”。
- 打開你的TXT文件,然后粘貼,這時(shí)你會(huì)看到TXT文件中出現(xiàn)一段代碼:
fl.getDocumentDOM().getTimeline().setLayerProperty('name', 'AS');
- 保存你的TXT文件,并重命名為:“把圖層命名為AS.jsfl”。
- 將你的“把圖層命名為AS.jsfl”放到類似下面路徑的文件夾下:
C:\Documents and Settings\Administrator\Local Settings\Application Data\Macromedia\Flash 8\zh_cn\Configuration\Commands 其中,Administrator是你的系統(tǒng)用戶名。
- 這時(shí)候點(diǎn)擊FLASH主菜單欄中的“命令”,你會(huì)發(fā)現(xiàn)在“運(yùn)行命令”的橫線下面多了一條“把圖層命名為AS.jsfl”的選項(xiàng)。
- 再新建一個(gè)fla,然后選擇“圖層 1”,并執(zhí)行“命令”菜單中的“把圖層命名為AS.jsfl”,你會(huì)發(fā)現(xiàn),“圖層1”被自動(dòng)命名為“AS”了。
上面的實(shí)驗(yàn)告訴我們什么?
相信大家已經(jīng)能簡單的體會(huì)到j(luò)sfl的作用了,它可以通過一些jsfl腳本自動(dòng)完成對應(yīng)的FLASH編輯操作。另外我們還應(yīng)該了解到如下知識(shí)才算階段性畢業(yè):
- jsfl是一種腳本語言。
- jsfl文件應(yīng)該放在那里。
- 如何運(yùn)行一個(gè)jsfl命令。
jsfl腳本只能從“歷史記錄”面板中生成么?
當(dāng)然不是,“歷史記錄”面板所能生成的jsfl非常有限,要想實(shí)現(xiàn)復(fù)雜的功能,就必須自己手動(dòng)寫Flash JavaScript代碼了。至于jsfl的官方專業(yè)解釋,大家可以去查看FLASH 8幫助文檔中的《擴(kuò)展 Flash》一書,書中還有jsfl的應(yīng)用示例和程序字典,我就是看著這本書自己研究的。
jsfl到底有多強(qiáng)大?我們有必要學(xué)jsfl么?
jsfl多強(qiáng)大我還不能確切的告訴你,因?yàn)槲乙矝]深入學(xué)習(xí)呢:)但用過ASV5的朋友應(yīng)該都知道,ASV5能把SWF中的所有元素都分離出來,并產(chǎn)生一個(gè)jsfl文件,然后運(yùn)行這個(gè)jsfl文件就可以把那些分離出來的元素組合為一個(gè)fla源文件了,由此可見jsfl的強(qiáng)大能力了吧?至于有沒有必要深入學(xué)jsfl,那要看你的興趣和工作需要,火山目前的工作可能需要批量生產(chǎn)一些結(jié)構(gòu)復(fù)雜卻類似的SWF,于是對火山來說,jsfl就比較重要了。
個(gè)滿足火山日常開發(fā)習(xí)慣的綜合例子:
火山開發(fā)習(xí)慣:目前我在開始一個(gè)面向過程的項(xiàng)目之前,以下三個(gè)工作是必不可少的。
- 時(shí)間軸最上層建立“AS”層和“Label”層
- AS” 層第一幀寫如下注釋:
//================系統(tǒng)設(shè)置================// //——————變量初始化 //——————數(shù)組初始化 //——————對象初始化 //——————系統(tǒng)初始化 //——————界面初始化 //================功能邏輯================// //================函數(shù)模塊================//
- 庫里建立三個(gè)文件夾:“0-image”,“1-sound”,“2-公用元件”。
→好了,需求有了,我們就開始寫代碼吧,前面我們已經(jīng)知道jsfl文件應(yīng)該放的位置了,這次就直接在那里建立一個(gè)“火山習(xí)慣.jsfl”,然后寫下面的代碼: //第一步:自動(dòng)產(chǎn)生AS層和Label層 fl.getDocumentDOM().getTimeline().addNewLayer("AS"); fl.getDocumentDOM().getTimeline().addNewLayer("Label"); //第二步:在“AS”層第一幀上添加注釋 var layerIndex = fl.getDocumentDOM().getTimeline().findLayerIndex("AS"); fl.getDocumentDOM().getTimeline().layers[layerIndex].frames[0].actionScript = '//================系統(tǒng)設(shè)置================//\n//——————變量初始化\n//——————數(shù)組初始化\n//——————對象初始化\n//——————系統(tǒng)初始化\n//——————界面初始化\n//================功能邏輯================//\n//================函數(shù)模塊================//\n'; //第三步:在庫里自動(dòng)創(chuàng)建文件夾 fl.getDocumentDOM().library.newFolder("0-image"); fl.getDocumentDOM().library.newFolder("1-sound"); fl.getDocumentDOM().library.newFolder("2-公用元件");
新建一個(gè)fla,在“命令”菜單里運(yùn)行“火山習(xí)慣”,看一下效果吧:)
經(jīng)典論壇討論: http://bbs.blueidea.com/thread-2796346-1-1.html
本文鏈接:http://www.95time.cn/tech/multimedia/2007/4970.asp
出處:藍(lán)色理想
責(zé)任編輯:moby
◎進(jìn)入論壇RIA設(shè)計(jì)與應(yīng)用版塊參加討論
|