[Flash]JSFL-将当前层中的符号转换为位图

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Flash]JSFL-将当前层中的符号转换为位图相关的知识,希望对你有一定的参考价值。

Convert Symbol to Bitmap in Current Layer
  1. fl.trace("========================================START")
  2.  
  3. var mQuality = prompt('輸入壓縮品質數值(0~100, default:80) : ');
  4. if (mQuality == null || mQuality == "") {
  5. mQuality = 80;
  6. } else {
  7. mQuality = parseInt(mQuality);
  8. }
  9.  
  10. var lib = fl.getDocumentDOM().library;
  11. var mTimeline = fl.getDocumentDOM().getTimeline();
  12. // get index of current layer
  13. var layerIdx = mTimeline.currentLayer;
  14. var framesArray = mTimeline.layers[layerIdx].frames;
  15. if (framesArray.length > 0) {
  16. var keyframesArray = [];
  17. // get key frames in current layer
  18. for (i=0; i<framesArray.length; i++) {
  19. if (i==framesArray[i].startFrame) {
  20. keyframesArray.push(framesArray[i]);
  21. }
  22. }
  23. fl.trace("Bitmap compression : " + mQuality.toString());
  24. fl.trace("Get " + keyframesArray.length.toString() + " keyframes at Layer : " + mTimeline.layers[layerIdx].name)
  25.  
  26. var mElement;
  27.  
  28. for (i=0; i<keyframesArray.length; i++) {
  29. // in keyframe
  30. if (keyframesArray[i].elements.length > 0) {
  31. for (j=0; j<keyframesArray[i].elements.length; j++) {
  32. // in element
  33. mElement = keyframesArray[i].elements[j];
  34.  
  35. if (mElement.instanceType == "symbol") {
  36. // is a symbol element
  37.  
  38. // set current frame
  39. mTimeline.currentFrame = keyframesArray[i].startFrame;
  40. // set selection to current element
  41. fl.getDocumentDOM().selection = [mElement];
  42. fl.trace("At frame " + keyframesArray[i].startFrame + ", Item name : " + mElement.libraryItem.name + ", Select elements : " + document.selection.length.toString() );
  43.  
  44. if(document.selection.length>0){
  45. document.convertSelectionToBitmap();
  46. fl.trace(" Convert to Bitmap ... " + keyframesArray[i].elements[j].libraryItem.name);
  47.  
  48. libItemIdx = lib.findItemIndex(keyframesArray[i].elements[j].libraryItem.name);
  49.  
  50. item = lib.items[libItemIdx];
  51.  
  52. if(item.itemType == "bitmap" && item.name.substr(0,3)=="點陣圖"){
  53. item.compressionType = "photo";
  54. item.quality = mQuality;
  55. fl.trace(" Set compression to " + mQuality.toString());
  56. }
  57. }
  58. }
  59. }
  60. }
  61. }
  62. }
  63. alert("Done.")
  64. fl.trace("========================================END")

以上是关于[Flash]JSFL-将当前层中的符号转换为位图的主要内容,如果未能解决你的问题,请参考以下文章

JSFL 命令将文本字段拆分为单词 - Flash 数组顺序错误

如何使用 JSFL 将不同文件夹中的大量位图导入到库中,并将文件夹结构保存在 fla 文件中

JSFL已经运行了很长时间

如何使用 Flash JavaScript 文件 (.jsfl) 将库中的对象添加到舞台?

flash里面,位图动态缩小,如何消除锯齿?

如何通过 XMLUI 从 JSFL 中的 Flash 创作中获取值?