見出し画像

【projectItemRenamer.jsx】選択判定 3【開発記】

選択判定とか書かれてる他の人にわかりにくい機能の続き🤤

環境確認
草案作成
UI構築
環境保存
環境読込
準備処理
選択判定 ←今ココ
候補処理
選択処理
改名処理

→ activeItem と selection を駆使して判別する感じ🤤

#jsx #開発記
#activeItem #selection
#AfterEffects


調査

それじゃ activeItem の調査しようね🤤

画像1

↑は前回 activeItem が null だった時の画像。

画像2

作った試験用 .aep を開くと選択されたパネルが有るので activeViewer に何か入ってる🤤

画像3

アプリを確認するとタイムラインパネルかな?🤔

画像4

展開してみても中身が良く解らない😞
a に代入してみるも変わらず…
たすけて!さいとー先生!🤪

activeViewer
http://aejsx.hiroshisaito.net/application-object/attributes/activeviewer
Viewer object
http://aejsx.hiroshisaito.net/viewer-object

どうやら ViewerType なるものが有る模様🤔

画像5

入ってる app.activeViewer.type は 6812 だから VIEWER_COMPOSITION かな🤤

画像6

てことはアクティブになってるタイムラインパネルの映し出してる viewer の種類が取れるって事みたい🤔
気になって調べたけど、これ使わない情報だった🤪

画像7

最初から activeItem 見とけば良かったね🤪
こっちは想定通り🤤

画像8

selectedLayers , selectedProperties が見えてる。複数選択すると多分ここに入ってくる…のかな🤤

画像9

画像10

画像11

プロジェクトパネルでフォルダを選ぶと FolderItem になる(当たり前
これ、プロジェクトパネルとタイムラインパネルのどっちがアクティブか、判定する方法が有った様な…🙄

画像12

画像13

複数選択していると activeItem が null に。
selection に選択したアイテムが列挙されてる🤔

画像14

画像16

画像16

コンポ内のレイヤーを選択すると↑で予想した通り selectedLayers に選択したアイテムが列挙されてる🤤

画像17

この状態でプロジェクトパネルでフォルダ2つ選択してタイムラインをアクティブに戻した状態。
activeItem はタイムラインがアクティブなので CompItem が入ってるけど selection は選択したフォルダしか入ってない🙄

画像18

画像19

プロジェクトパネル側の選択を戻してプロジェクトパネルにフォーカスしたままだと当然 activeItem は null に🤔

ではプロジェクトアイテムとタイムラインのコンポが一致する場合は?🤔

画像20

画像21

プロジェクトパネルがフォーカスでは activeItem === selection[0] の状態🙄

画像22

画像23

変わらない🙄ソリャソウダ

【AEスクリプト】ユーザーに必ずタイムラインコンポを選択させる方法
https://terriblejunkshow.com/tutorial/chkactiveitem

この記事を見る限りでは selected を外す以外にやりようがない…っぽい?🤔
まぁ、判別できないと困る事態に陥った時に思い出せばいいかな🤤
多分、判別できない状態で困る事が…無い…筈🤪


次回は

コーディングに入ろうかな🤤
書いてる途中で作戦が要るかもしれないけど今の段階では取り掛からないと判明しない物が有る気がする🙄


この記事が気に入ったらサポートをしてみませんか?