2014-01-30 55 views
0

我想寫一個腳本,用另一個文件替換我的庫中某些位圖對象的源。實際上,在Flash的舞臺上更新對象並不重要,我不在乎BitmapItem.sourceFileIsCurrent的狀態是否改變。我只需要爲我們的導出過程(涉及CreateJS)更改sourceFilePath。在JSFL中,是否有寫入BitmapItem.sourceFilePath的解決方法?

問題是JSFL的BitmapItem.sourceFilePath是隻讀的。我考慮導入新圖像並刪除舊圖像,但舊圖像將用於其他各種符號和舞臺上。那麼我能做些什麼來解決這個問題?

+0

任何運氣與建議的想法? –

回答

0

我沒有在一段時間使用Flash,所以不是100%確定這會工作。

首先,你可以試試這個:

  1. 替換/更新庫中手動
  2. 檢查歷史記錄面板,看到一個位圖項目的路徑,如果動作被記錄下來,沒有一個紅色的X在它的左邊。如果沒有,你很幸運,你使用面板的選項(3條水平線)來改變視圖到一個JavaScript的看到你需要打電話

並非所有你在做盡管IDE可以使用JSFL完成。

你可以嘗試另一種說法是:

  1. 店要替換
  2. 輸入您要使用(通過fl.getDocumentDOM().importFile()
  3. 刪除舊的位圖新的位圖的庫項目的名稱要從庫中替換的項目
  4. 將以前存儲的名稱設置爲新的位圖項目(通過名稱屬性)
  5. (可選)更新實例(instanceUsingOldBitmap.l ibraryItem = newBitmapItem)
+0

感謝您的想法。一些問題:歷史小組確實提供了一些代碼,但顯然不相關。 'var lib = fl.getDocumentDOM()。library; lib.setItemProperty('allowSmoothing',false); lib.setItemProperty('compressionType','photo');'第二個想法在第3步失敗 - 如果我刪除舊的位圖,則在舞臺或其他符號上的引用將消失。 – PokeJoe

+0

但是,使用通過歷史窗口暴露的JSFL(這是我迄今不知道的,謝謝) - 我發現了'fl.getDocumentDOM()。swapElement();'這可能有助於解決這個問題。 – PokeJoe

+0

忘記了符號消失的問題。很高興'swapElement()'彈出,並且可以從JSFL調用歷史記錄步驟(正如我所提到的,並不是所有在Flash IDE中執行的操作都可以在JSFL中複製) –

相關問題