-
Notifications
You must be signed in to change notification settings - Fork 0
/
editmode.jsfl
96 lines (82 loc) · 3.24 KB
/
editmode.jsfl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
var fdoc = fl.getDocumentDOM();
var fltl = fdoc.getTimeline();
var myLayerArray = fltl.getSelectedLayers();
var myFrameArray = fltl.getSelectedFrames();
var countLA = myLayerArray.length;
var countFA = myFrameArray.length;
var KLayer = fltl.currentLayer;
var KFrame = fltl.currentFrame;
//1フレームのみ選択
if(countLA == 1 && myFrameArray[2]-myFrameArray[1] == 1 && countFA == 3)
{
func();
}
//フレームを選択していない
else if(countFA == 0)
{
//現在のフレームを選択
fltl.setSelectedFrames(KFrame,KFrame + 1);
func();
fdoc.selectNone();
fltl.setSelectedFrames([]);
}
//フレームを複数選択している
else
{
var prePosition = fltl.getSelectedFrames();
var hozonKFrame = fltl.currentFrame;
var FS = fltl.layers[KLayer].frames[KFrame].duration;
//条件追加選択1以上でも1フレーム全選択の場合軽量処理。
if (FS == [myFrameArray[2] - myFrameArray[1]])
func();
else
{
for (var i = 0; i < countFA; i++)
{
if (i % 3 == 0)
{
var FAhani = myFrameArray[i + 2] - myFrameArray[i + 1];
//選択範囲のみ適応
for (var j = 0; j < FAhani; j++)
{
//作業箇所選択
fltl.setSelectedLayers(myFrameArray[i]);
//現在のレイヤーのフレーム数を取得
var KLayerFcount = fltl.layers[myFrameArray[i]].frameCount;
//選択時のキーフレームこぼし拾い
if((myFrameArray[i + 1] + j) < KLayerFcount && j == 0
&& myFrameArray[i + 1] + j != fltl.layers[myFrameArray[i]].frames[myFrameArray[i + 1] + j].startFrame)
{
KFrameSF = fltl.layers[myFrameArray[i]].frames[myFrameArray[i + 1]].startFrame
fltl.setSelectedFrames(KFrameSF, KFrameSF + 1);
KLayer = myFrameArray[i];
KFrame = KFrameSF;
func();
}
//フレームのないエリアは処理しない。キーフレームのみ処理
if ((myFrameArray[i + 1] + j) < KLayerFcount
&& myFrameArray[i + 1] + j == fltl.layers[myFrameArray[i]].frames[myFrameArray[i + 1] + j].startFrame)
{
fltl.setSelectedFrames(myFrameArray[i + 1] + j, myFrameArray[i + 1] + j + 1);
KLayer = myFrameArray[i];
KFrame = myFrameArray[i + 1] + j;
func();
}
}
}
}
//保存された選択範囲を再現
fltl.setSelectedFrames(prePosition);
fltl.currentFrame = hozonKFrame;
}
}
function func()
{
var OK1 = fltl.layers[KLayer].locked;
OK1 = (OK1 == false) ? 1 : 0;
var OK2 = fltl.layers[KLayer].visible;
OK2 = (OK2 == true) ? 1 : 0;
var OK3 = fltl.layers[KLayer].frames[KFrame].elements;
if(OK1 + OK2 == 2 && OK3 != false){fl.getDocumentDOM().enterEditMode('inPlace');}
// if(OK1 + OK2 == 2){fdoc.deleteSelection();}
}