想利用ria來生成swf,可以當看過swf檔案規範之後感覺這樣做似乎過於複雜了。以前衰人給過乙個使用flash cs3 ide的擴充套件來製作的方式,沒有怎麼深入去看。週末仔細研究了一番,感覺走了彎路了。jsfl已經可以通過很簡單的**來處理所有素材包的製作了,何必非要去做個另類的生成工具。
jsfl使用起來很簡單,而且除錯很方便。ide裡面的歷史面板可以把你每一步操作使用的jsfl原始碼都告訴你。第一次使用你可能需要了解他的這個dom結構,語法是js語法,即使你沒有任何js基礎,但是有as基礎就夠用了。
1、當前開啟的文件用fl.getdocument()取得,他是乙個document物件。
2、fl.getdocument().library 取得當前文件庫的引用,做素材的話這個是最常用到的了。庫面板上可以進行的操作,你都可以用api來做,看一下幫助文件就了解了,並不複雜。
3、fl.getdocumentdom().gettimeline() 來訪問當前文件的時間軸。此方法返回當前正在編輯的場景或元件的時間軸。也就是你當前正在操作哪個時間軸,顯示的就是哪個時間軸。
4、時間軸上又分了層layer,每乙個層又有不同的幀frame。程式可以取得任何的時間軸上面的層和幀的內容。
5、有的時候操作某個東西需要把他變成選擇狀態。場景中正在編輯的東西的選取可以通過座標來操作,相當於你在某個座標點了一下,那麼這一點下最上層的物體就被選中了。
如果想多了解多一點他的用法,可以參考衰人的帖子。
說了一堆,簡單看乙個例子就明白了。
開始製作之前我們先大致確定一下我們的需求:
1、我們需要把每一位圖都變成乙個mc,同時把這個mc作為乙個匯出類來用
2、每乙個點陣圖都有乙個唯一的匯出類名。
3、所有的點陣圖變成mc之後都是左上角作為原點。
4、處理完的點陣圖和mc都在庫裡面分目錄存放,資源的種類作為目錄。
5、點陣圖的檔名中記錄了種類、名稱和匯出類名。(本例中的點陣圖命名規則為:種類_名稱_匯出類名.png)
最後使用的jsfl**如下。
fl.getdocumentdom().selectall();//選中場景中所有的點陣圖
if(fl.getdocumentdom().selection.length>0)
var lib=fl.getdocumentdom().library;//取得庫
var liblength=lib.items.length;//庫元素的長度
var bitmaparr=new array();//庫裡面沒有處理的點陣圖
for(var i=0;i0)
{//建立目錄
for(var i=0;i