【projectItemRenamer.jsx】選択判定 3【開発記】
選択判定とか書かれてる他の人にわかりにくい機能の続き🤤
環境確認
草案作成
UI構築
環境保存
環境読込
準備処理
選択判定 ←今ココ
候補処理
選択処理
改名処理
→ activeItem と selection を駆使して判別する感じ🤤
#jsx #開発記
#activeItem #selection
#AfterEffects
調査
それじゃ activeItem の調査しようね🤤
↑は前回 activeItem が null だった時の画像。
作った試験用 .aep を開くと選択されたパネルが有るので activeViewer に何か入ってる🤤
アプリを確認するとタイムラインパネルかな?🤔
展開してみても中身が良く解らない😞
a に代入してみるも変わらず…
たすけて!さいとー先生!🤪
activeViewer
http://aejsx.hiroshisaito.net/application-object/attributes/activeviewer
Viewer object
http://aejsx.hiroshisaito.net/viewer-object
どうやら ViewerType なるものが有る模様🤔
入ってる app.activeViewer.type は 6812 だから VIEWER_COMPOSITION かな🤤
てことはアクティブになってるタイムラインパネルの映し出してる viewer の種類が取れるって事みたい🤔
気になって調べたけど、これ使わない情報だった🤪
最初から activeItem 見とけば良かったね🤪
こっちは想定通り🤤
selectedLayers , selectedProperties が見えてる。複数選択すると多分ここに入ってくる…のかな🤤
プロジェクトパネルでフォルダを選ぶと FolderItem になる(当たり前
これ、プロジェクトパネルとタイムラインパネルのどっちがアクティブか、判定する方法が有った様な…🙄
複数選択していると activeItem が null に。
selection に選択したアイテムが列挙されてる🤔
コンポ内のレイヤーを選択すると↑で予想した通り selectedLayers に選択したアイテムが列挙されてる🤤
この状態でプロジェクトパネルでフォルダ2つ選択してタイムラインをアクティブに戻した状態。
activeItem はタイムラインがアクティブなので CompItem が入ってるけど selection は選択したフォルダしか入ってない🙄
プロジェクトパネル側の選択を戻してプロジェクトパネルにフォーカスしたままだと当然 activeItem は null に🤔
ではプロジェクトアイテムとタイムラインのコンポが一致する場合は?🤔
プロジェクトパネルがフォーカスでは activeItem === selection[0] の状態🙄
変わらない🙄
【AEスクリプト】ユーザーに必ずタイムラインコンポを選択させる方法
https://terriblejunkshow.com/tutorial/chkactiveitem
この記事を見る限りでは selected を外す以外にやりようがない…っぽい?🤔
まぁ、判別できないと困る事態に陥った時に思い出せばいいかな🤤
多分、判別できない状態で困る事が…無い…筈🤪
次回は
コーディングに入ろうかな🤤
書いてる途中で作戦が要るかもしれないけど今の段階では取り掛からないと判明しない物が有る気がする🙄
この記事が気に入ったらサポートをしてみませんか?