root/mxp/LetterspaceStaticText/src/letterspace.jsfl

リビジョン 2503, 2.6 kB (コミッタ: yoropan, コミット時期: 3 年 前)

--

Line 
1 var dom = fl.getDocumentDOM();
2 var currLib = dom.library;
3 var dialog = dom.xmlPanel(fl.configURI+"Commands/letterspace.xml");
4 var lsnum_f=Number(dialog.ls_f);
5 var lsnum=Number(dialog.ls);
6
7 var m_arr =[]
8         m_arr=dialog.mozi.split(',')
9 var m_arr_f =[]
10         m_arr_f=dialog.mozi_f.split(',')
11 var mozi_mae=dialog.front;
12 var mozi_ato=dialog.back;
13
14 function init() {
15         var list = fl.getDocumentDOM().library.items
16                 for ( var i in list ) {
17                 var item = list[i];
18                 //ライブラリの中のMCだけ判定
19                         if( item.itemType == "movie clip" ) {
20                         var itemTimeline = item.timeline;
21                                 traverse(itemTimeline.layers, item.name);
22                         }
23                 }
24 }
25 function traverse(layers, itemName) {
26         var layerLength = layers.length;
27         for (var i = 0; i < layerLength; i++) {
28                 var layer = layers[i];
29                 var frames = layer.frames;
30                
31                 var frameLength = frames.length;
32                 for (var j = 0; j < frameLength; j++) {
33                         var frame = frames[j];
34                         var element=frame.elements
35                        
36                         var elemLength = element.length;
37                         for (var k = 0; k < elemLength; k++) {
38                                 var ele=element[k];
39                                
40                                 if(ele.elementType=="text" && ele.textType=="static"){
41                                 //カーニング処理
42                                         lsp(ele);
43                                 }
44                                
45                         }
46
47                 }
48                
49         }
50        
51 }
52
53 function lsp(ele){
54                                 var arr_b=new Array();
55                                 var arr_f=new Array();
56
57                         if(dialog.back && lsnum!=""){
58                                                         for(i=0;i<ele.length;i++){
59                                         //テキストを判定 後ろ
60                                         var txt=ele.getTextString(i, i+1);
61                                                 for(t=0;t<m_arr.length;t++){
62                                                                         if(txt.indexOf(m_arr[t])!=-1){
63                                                                                 arr_b.push(i);
64                                                                                 }
65                                                 }
66                                         }
67                                                                
68                                 //取り出す
69
70                                 for(j =0; j<arr_b.length;j++){
71                                         var num=Number(arr_b[j]);
72                                         //フォントサイズに応じたカーニングの値を計算
73                                         var fsize=ele.getTextAttr("size", num);
74                                         var knum=Math.round(fsize*lsnum/100)
75                                        
76                                         //カーニング
77                                         ele.setTextAttr("letterSpacing", knum,num,num+1);
78                                 }
79                         }
80                         if(dialog.front && lsnum_f!=""){
81                                         for(i=0;i<ele.length;i++){
82                                         //テキストを判定 前
83                                         var txt=ele.getTextString(i, i+1);
84                                                 for(t=0;t<m_arr_f.length;t++){
85                                                                         if(txt.indexOf(m_arr_f[t])!=-1){
86                                                                                 arr_f.push(i);
87                                                                                 }
88                                                 }
89                                         }
90                                         //取り出す
91                                 for(j =0; j<arr_f.length;j++){
92                                         var num=Number(arr_f[j]);
93                                         //フォントサイズに応じたカーニングの値を計算
94                                         var fsize=ele.getTextAttr("size", num);
95                                         var knum=Math.round(fsize*lsnum_f/100)
96                                        
97                                         //カーニング
98                                         ele.setTextAttr("letterSpacing", knum,num-1,num);
99                                 }
100                         }
101 }
102 if(dialog.dismiss == "accept"){
103 init();
104 }
Note: リポジトリブラウザについてのヘルプは TracBrowser を参照してください。